在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方法,然后打印了子类自己的消息。这允许子类在保留父类行为的同时添加或修改功能。