对于父类的方法,子类如果认为不符合它的要求,就可以进行重写。为此,可在子类中定义一个与要重写的父类同名的方法。这样,在子类实例中调用重写的方法时,调用的是子类中定义的方法。
在下面的示例中,子类PetDog重写了父类Animal的方法get_description():
class Animal:
"""动物类"""
def __init__(self, name, age):
"""初始化描述动物的属性"""
self.name = name
self.age = age
def get_description(self):
"""构造描述信息"""
full_description = f"{self.name.title()}'s age is {self.age}."
return full_description
class PetDog(Animal):
"""宠物狗"""
def __init__(self, name, age):
"""初始化父类的属性。
再初始化宠物狗特有的属性
"""
super().__init__(name, age)
self.owner = "thb"
def get_description(self):
"""构造描述信息"""
full_description = f"The owner is {self.owner}."
return full_description
# 创建一个宠物狗的实例
pet_dog = PetDog('Shiwu', 3)
print(pet_dog.get_description())
运行输出: