python-面向对象(继承)
1、 python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法
python中,所有类默认继承object类,object类是顶级类或基类,其他子类叫做派生类
2、 单继承和多继承
单继承:一个类继承一个父类
多继承:一个类同时继承了多个父类
当一个类有多个父类的时候,默认使用第一个父类的同名属性和方法(按顺序,从左到右继承)
3、 子类重写父类同名方法和属性
如果子类和父类拥有相同的属性和方法,默认使用子类里面的同名属性和方法
4、 类的层级关系:类名.__mro__
5、 子类调用父类的同名方法和属性
再次调用初始化的原因:这里想要调用父类的同名方法和属性,属性在init初始化位置,所以需要再次调用init
6、 多层继承
多继承:C3算法
查看一个类的继承关系方法:print(类.mro())
7、 super()调用父类方法
有参数:super(当前类名, self).函数()
无参数:super().函数()
使用super()可以自动查找父类,调用顺序遵循__mro__类属性的顺序,比较适合单继承使用
8、 私有权限(不继承给子类)
定义私有属性和方法:在属性名和方法名前面加两个下划线__
私有属性和私有方法只能在类里面访问和修改
9、 获取和修改私有属性值
python中,一般定义函数名get__xx用来获取私有属性,
定义函数名set__xx用来修改私有属性值