python超继承的真实面目

python超继承的真实面目,其实就是给被重写的父类方法留了一道小门!

超继承:

class 子类名(父类名):

  def 子类方法名(self,子类参数,父类参数):

    super(子类名,self).父类方法名(父类参数)

超继承后,如果如果子类通过父类的其他方法调用父类被重写方法(试图绕过重写),能成功吗?

答案是不能

经过调试你就会发现,在子类中,通过调用父类其他函数调用被重写的方法,最后还是会调回到super那里。

也就是说,不管是重写还是超继承,表面上是只能调用子类重写的方法。

可以把超继承中的super看成是重写时给父类被重写方法留的一个缺口,每次子类运行这个方法时,都会通过super调用被重写的方法。

这样重写的方法既可以使用被重写的内容,又可以使用新加入的内容,这就是超继承。

posted @ 2020-06-10 02:13  luckytian  阅读(152)  评论(0)    收藏  举报