基本方法重写
以下是 Python 中基本覆盖的示例(为了清晰和兼容 Python 2 和 3,使用新样式类和 print 与 ()):
class Parent(object):
def introduce(self):
print("Hello!")
def print_name(self):
print("Parent")
class Child(Parent):
def print_name(self):
print("Child")
p = Parent()
c = Child()
p.introduce()
p.print_name()
c.introduce()
c.print_name()
$ python basic_override.py
Hello!
Parent
Hello!
Child
创建 Child 类时,它继承了 Parent 类的方法。这意味着父类具有的任何方法,子类也将具有。在示例中,introduce 是为 Child 类定义的,因为它是为 Parent 定义的,尽管没有在 Child 的类定义中明确定义。
在此示例中,当 Child 定义其自己的 print_name 方法时,将发生覆盖。如果没有声明这个方法,那么 c.print_name() 会打印 Parent。然而,Child 已经覆盖了 Parent 对 print_name 的定义,所以现在在调用 c.print_name() 时,会打印出 Child 这个词。