python3类的继承
参考:https://blog.csdn.net/zhouzhiwengang/article/details/119677637
1、继承
python支持类继承,在子类类名后的圆括号()中声明继承的父类,如果没有继承,则可以不加()。
支持多继承,直接写入多个类名,用,分隔。
如果没有指定基类,python的类会默认继承object类。object是所有python类的基类,它提供了一些常见方法(如__str__)的实现。
class Person:
def __init__(self):
self.age = 15
class Stu(Person):
def __init__(self):
pass
2、子类调用父类
(1)在子类中,如果没有显示声明,那么可以通过self直接调用父类的类变量和不涉及父类对象变量的方法。否则,执行时,会报异常。
(2)在子类中,声明父类.__init__(self)
,可以通过self调用父类的对象变量和涉及父类对象变量的方法
(3)super
super(父类, self).__init__()
- 等价于
父类.__init__(self)
super().父类方法()
- 调用父类中的方法
- self会先在当前类中查找调用的方法,如果没有找到才会查找父类。而super()是直接调用父类方法
- super()并不能调用父类的对象变量,但是可以调用父类的类变量
3、覆写
如果在子类中定义和父类中相同的方法名,则意味着进行了覆写,并不关心两者的参数列表是否相同。
此时,可以用self调用子类中的重写的方法,而用super()调用父类中的方法。