L20 Inheritance
-
继承
class <name>(<base class>):- 共享基类的属性和方法(包括构造方法)
- 子类可能会 override 基类的部分属性
- 基类的类属性不会复制到子类,因此基类的类属性改变则所有子类的基类类属性都会更改
-
组合或继承
- 组合 --- has
- 继承 --- is a
-
Multiple inheritance 多重继承,即继承多个基类
- 如果多重继承中,基类的属性或方法有override的情况则优先看排在前面的基类的类属性或方法
- 增删改查都是相通的
- 增删改 --- 自己的属性
- 查 --- 自己的、第一个基类、第二个基类等等,如果直接继承的基类都没有再从头找基类的基类
-
总结
- 虽然关系很复杂,记住两点
- 增删改 --- 只作用自己属性
- 查 --- 自己、(类)直接基类(从左到右)、基类基类(从左到右)
- 虽然关系很复杂,记住两点