python超继承的真实面目
python超继承的真实面目,其实就是给被重写的父类方法留了一道小门!
超继承:
class 子类名(父类名):
def 子类方法名(self,子类参数,父类参数):
super(子类名,self).父类方法名(父类参数)
超继承后,如果如果子类通过父类的其他方法调用父类被重写方法(试图绕过重写),能成功吗?
答案是不能
经过调试你就会发现,在子类中,通过调用父类其他函数调用被重写的方法,最后还是会调回到super那里。
也就是说,不管是重写还是超继承,表面上是只能调用子类重写的方法。
可以把超继承中的super看成是重写时给父类被重写方法留的一个缺口,每次子类运行这个方法时,都会通过super调用被重写的方法。
这样重写的方法既可以使用被重写的内容,又可以使用新加入的内容,这就是超继承。

浙公网安备 33010602011771号