Python教程:Python父类方法重写

在Python中,子类可以通过定义与父类同名的方法来重写(Override)父类的方法。这种机制允许子类提供特定的实现,以替代从父类继承的通用实现。重写父类方法时,子类方法将覆盖父类方法的行为,但子类仍然可以访问父类方法的原始实现(如果需要的话)。

以下是一个简单的示例,展示了如何在Python中重写父类方法:

# 定义父类  
class Parent:  
    def greet(self):  
        print("Hello from Parent!")  
  
# 定义子类,重写greet方法  
class Child(Parent):  
    def greet(self):  
        print("Hello from Child!")  
  
# 创建父类实例并调用greet方法  
parent_instance = Parent()  
parent_instance.greet()  # 输出: Hello from Parent!  
  
# 创建子类实例并调用greet方法  
child_instance = Child()  
child_instance.greet()  # 输出: Hello from Child!

在这个示例中,Parent类有一个名为greet的方法,它打印一条消息。Child类继承自Parent并重写了greet方法,以打印不同的消息。当我们创建Parent和Child的实例并调用它们的greet方法时,可以看到子类的方法覆盖了父类的方法。

如果你想在子类中调用父类的被重写方法,可以使用super()函数。以下是一个示例:

class Parent:  
    def greet(self):  
        print("Hello from Parent!")  
  
class Child(Parent):  
    def greet(self):  
        # 调用父类的greet方法  
        super().greet()  
        # 打印子类的消息  
        print("Hello from Child!")  
  
# 创建子类实例并调用greet方法  
child_instance = Child()  
child_instance.greet()

输出将是:

Hello from Parent!
Hello from Child!
在这个示例中,Child类的greet方法首先使用super().greet()调用了父类的greet方法,然后打印了子类自己的消息。这允许子类在保留父类行为的同时添加或修改功能。

猜你喜欢

转载自blog.csdn.net/m0_65482549/article/details/143113423