所謂方法重寫,就是子類對父類已有的方法,重新編寫自己的實現版本,這個過程就叫做方法重寫(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) # 輸出: 喵喵