根据docs on inheritance人的说法:
派生类可以重写其基类的方法.由于方法在调用同一对象的其他方法时没有特权,因此调用同一基类中定义的另一个方法的基类的方法可能最终调用重写它的派生类的方法.
这是怎么发生的?有人能用一个简单的例子来说明这个概念吗?
根据docs on inheritance人的说法:
派生类可以重写其基类的方法.由于方法在调用同一对象的其他方法时没有特权,因此调用同一基类中定义的另一个方法的基类的方法可能最终调用重写它的派生类的方法.
这是怎么发生的?有人能用一个简单的例子来说明这个概念吗?
以下是您要求的示例.这印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
中定义的,但它最终调用foo()
的Derived
实现,而不是Base
实现.