基本方法重写
以下是 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
这个词。