基本方法重写

以下是 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 已经覆盖了 Parentprint_name 的定义,所以现在在调用 c.print_name() 时,会打印出 Child 这个词。