在 Python 中,類繼承是一項非常重要的特性,它允許你創建一個基類,然后從它派生出更具體的子類。Python 中的類繼承遵循了面向對象編程的基本原則,即“類是對象的藍圖”。因此,基類可以定義公共的屬性和方法,而子類則可以通過繼承和擴展來獲得這些特性。
class Animal: def __init__(self, name, color): self.name = name self.color = color def speak(self): print("I am an animal.") class Dog(Animal): def __init__(self, name, color, breed): super().__init__(name, color) self.breed = breed def speak(self): print("Woof!") class Cat(Animal): def __init__(self, name, color, favorite_food): super().__init__(name, color) self.favorite_food = favorite_food def speak(self): print("Meow!")
上面的例子展示了一個基類 Animal 和兩個子類 Dog 和 Cat。子類繼承了基類的屬性和方法,并可以根據需要添加自己的屬性和方法。
在 Dog 類的構造函數中,我們使用 super() 函數調用基類的構造函數,這樣就不需要再次編寫基類中已有的代碼了。此外,我們還添加了 breed 屬性和 speak 方法,這些特性在 Animal 基類中是沒有的。
同樣地,在 Cat 類的構造函數中,我們使用 super() 函數調用 Animal 基類的構造函數,并添加了 favorite_food 屬性和 speak 方法。
我們還可以在子類的方法中調用基類的方法。例如,在 Dog 類的 speak 方法中,我們可以使用 super() 函數調用 Animal 基類中的 speak 方法并輸出“I am an animal.”。這樣就可以保留基類中原有的特性。
class Dog(Animal): def __init__(self, name, color, breed): super().__init__(name, color) self.breed = breed def speak(self): super().speak() print("Woof!")
在這個例子中,我們對 Dog 類的 speak 方法進行了擴展。首先,我們通過 super() 函數調用基類 Animal 中的 speak 方法。然后,我們在輸出“Woof!”之前輸出了基類中的信息。
在 Python 中,類繼承是非常靈活的,并且可以適用于各種場景。通過繼承,我們可以避免重復編寫代碼,同時提高代碼的可讀性和可維護性。