来自基类方法的重写方法调用如何工作?

哇!

根据有关继承文档

派生类可以覆盖其基类的方法。因为方法在调用同一对象的其他方法时没有特殊特权,所以基类的方法调用同一基类中定义的另一个方法可能最终会调用覆盖它的派生类的方法。

怎么发生的?有人可以用一个简单的例子来说明这个概念吗?

IanPudney:

这是您要求的示例。打印chocolate

class Base:
    def foo(self):
        print("foo")
    def bar(self):
        self.foo()

class Derived(Base):
    def foo(self):
        print("chocolate")

d = Derived()
d.bar()  # prints "chocolate"

该字符串chocolate被打印,而不是foo因为Derived覆盖该foo()函数。即使在bar()中进行了定义Base,它最终还是调用的Derived实现foo()而不是Base实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章