【python】 继承

继承

继承面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
附上一个使用面向对象编程,并使用继承方式实现的模拟打怪游戏

注意

  • 1、子类拥有父类得特征,而父类没有,父类更通用,子类更具体,

(特征包括属性和方法,自身的特性,拥有父类没有的)

  • 2、使用extends继承父类,语句格式:class 子类名 extends 父类名{}
  • 3、父类中一般只定义一般属性方法

(这个一般可以理解为是子类共有的,这就是父类更通用,而子类拥有其他的,所以子类更具体)

  • 4、子类中通过super关键字来调用父构造方法
  • 5、在子类中可以继承父类得那些东西,哪些不可以继承:
  • 父类中publicprotected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承
  • 6、规则: 创建子类对象的时候,首先调用的是父类的无参构造方法创建一个父类对象
  • 7、可以在子类中显示调用父类的有参构造方法
  • 8、如果父类的属性均为private修饰,则可以通过共有的getter,setter方法来调用
  • Python 支持多继承 ,继承内容和继承循序相关.
    所有的类,都会默认继承object类

举个栗子:

class A:
    def __init__(self):
        self.name = 'A'

    def print_test(self):
        print('¥¥¥¥¥¥¥')

class B:
    def __init__(self):
        self.name = 'B'

# class c(A,B):
class C(B,A):
    name = 'C'
    def __init__(self):
        super(C, self).__init__()
        self.age = 20

    def print_test(self):
        super(C, self).print_test()
        print('$$$$$$$$$$$$')
c = C()
print(c.name)
print(c.age)
# # 调用属性或方法的查找顺序
print(C.__mro__)
c.print_test()

内存分析:


内存分析

输出:

B
20
(<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>)
¥¥¥¥¥¥¥
$$$$$$$$$$$$

如果

__mro__方法:

python中支持多重继承,在解析父类的__init__时,
定义解析顺序的是子类的__mro__属性,内容为一个存储要解析类顺序的元组。

组合优于继承

class A:
    def __init__(self):
        self.name = 'A'

    def print_test(self):
        print('¥¥¥¥¥¥¥')

class D:
    def __init__(self):
        self.a = A()

    def print_test(self):
        self.a.print_test()
        print('= = = = = = = ')

d = D()
d.print_test()
¥¥¥¥¥¥¥
= = = = = = = 
判断实例:
print(isinstance(C,B))
print(issubclass(B,A))
False
False
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,896评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,163评论 1 32
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,563评论 0 6
  • ‌ 雨后。天还没有彻底放晴,空气中到处弥漫着雨水清新的味道。 阵阵微风拂过,树木上的雨水随风轻轻滴落下来,犹如一颗...
    淡墨竹香阅读 249评论 2 2
  • 苍穹白如玉, 玉中橙美景, 景清人入画, 画映冰洁中。
    溪边柳阅读 217评论 0 0