python类继承和组合
类的继承
继承语法为class 派生类名(基类名):基类名写作括号里,基类是在子类定义的时候在元组之中指明的。即括子类定义时的括号为一个元组,里面为基类的类名。
1 | class A(): |
子类调用基类的方法需要用BaseClassName.F(self)
的格式,调用本类的方法的格式为self.F(self)
的格式。
1 | class A(): |
子类可以继承基类的所有公有变量和方法,但是不能继承私有变量和方法。
1 | class A(): |
可以在括号中选择继承多个基类,以逗号隔开,这种继承被称为多重继承
1 | class A(): |
如果子类和基类都有__init__()
构造方法,构造方法会被重写,在子类中调用基类方法遵循上面的子类调用基类的函数原则,格式为BaseClassName.F(self)
。也可以用super.__init__()
按照MRO的解析顺序调用基类的构造方法(不过我还没懂MRO)。
1 | class A(): |
类的组合
类的继承主要解决的是纵向关系的类,例如交通工具类和高铁、飞机类。类的组合解决的则是横向关系,例如学校和学生、老师。
1 | class Student(): |