什么是继承:
继承是一种新建类的方式,新建的类称之为子类或派生类,继承的父类称之为基类或超类
在Python中,一个子类可以继承多个父类
在其他语言中,一个字累只能继承一个父类
继承的作用:
减少代码的冗余
如何实现继承:
1、先确认谁是子类,谁是父类
2、在定义子类时,子类名(父类名)
如何寻找继承关系:
确认谁是子集
确认谁是父集
得先抽象,再继承
-- 抽取对象之间相似的部分,总结出类
-- 抽取类之间相似的部分,总结出父类
注意:程度的执行顺序是由上到下,父类必须定义在子类上方
在继承背景下,对象属性的查找顺序:
1、先从对象自己的名称空间中查找
2、对象中没有,从子类的名称空间中查找
3、子类中没有,从父类的名称空间中查找,若父类没有,就报错
派生
指的是子类继承父类的属性与方法,并且派生出自己独有的属性与方式
若子类中的方法名与父类相同,优先用子类
子类重用父类的属性,并派生出新的属性
解决方式:
1、直接引用父类的——init——为其传参,并添加子类属性
2、通过super来指定父类的属性
-- 父类是一个特殊类,调用super得到一个对象,该对象指向父类的名称空间
注意: 两种方法使用那一个都可以,但不能两种方式混合使用
经典类与新式类:
新式类:1、凡是继承object 的类或子类都是新式类
2、在python3 中所有的类都默认继承object
经典类:1、在python2 中才会有经典类与新式类之分
2、在python2 中,凡是没有继承object 的类,都是经典类
在python3中,提供了一个查找新式查找顺序的内置方法
mro():会把当前类的继承关系列出来