所谓方法重写,就是子类对父类已有的方法,重新编写自己的实现版本,这个过程就叫做方法重写(override)。
说到方法重写,就不得不提多态。因为方法重写是实现多态的一种重要方式。
所谓多态,就是给不同的对象发送同样的消息,不同的对象执行了不同的行为。即多态允许我们以统一的接口来处理不同类型的对象。
在面向对象编程中,多态和方法重写通常一起使用,以实现更加灵活和强大的程序设计。
如何实现方法重写?
只需要在子类中定义一个与父类中方法同名的方法即可。Python会自动在调用时选择子类中的方法。
例:
class Animal: def make_sound(self): print("某种声音") class Dog(Animal): def make_sound(self): # 方法重写 print("汪汪") class Cat(Animal): def make_sound(self): # 方法重写 print("喵喵") # 运行同一方法,根据对象的不同运行不同方法
def animal_sound(animal): animal.make_sound() my_dog = Dog()
my_cat = Cat() # 根据传入的实例(如Dog或Cat),将调用实例重写的make_sound方法
animal_sound(my_dog) # 输出: 汪汪
animal_sound(my_cat) # 输出: 喵喵