Python基本方法覆盖

示例

下面是基本首要的在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"ChildParentprint_namec.print_name()"Child"