Python繼承和多態基礎
1. 繼承的概念
繼承是面向對象編程中的一個重要特性,允許一個類(子類)從另一個類(父類)獲取屬性和方法。這樣可以實現代碼的重用,並使得代碼結構更加清晰。
2. 繼承的示例
# 定義父類
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
return "動物發出聲音"
# 定義子類
class Dog(Animal):
def speak(self): # 重寫父類方法
return "汪汪!"
class Cat(Animal):
def speak(self): # 重寫父類方法
return "喵喵!"
# 創建對象
my_dog = Dog("小白")
my_cat = Cat("小黑")
print(my_dog.name + ": " + my_dog.speak()) # 輸出:小白: 汪汪!
print(my_cat.name + ": " + my_cat.speak()) # 輸出:小黑: 喵喵!
3. 多態的概念
多態是指不同類型的對象可以使用相同的接口進行操作。這意味著可以使用相同的方法名來調用不同類的對象,從而實現靈活的代碼設計。
4. 多態的示例
# 定義一個函數,接受Animal類型的對象
def animal_sound(animal):
print(animal.speak())
# 創建對象
my_dog = Dog("小白")
my_cat = Cat("小黑")
# 使用多態
animal_sound(my_dog) # 輸出:汪汪!
animal_sound(my_cat) # 輸出:喵喵!
5. 練習題
-
創建一個父類表示交通工具,並定義子類表示汽車和自行車,重寫方法以顯示不同的行駛方式。
-
創建一個父類表示形狀,並定義子類表示圓形和矩形,重寫方法以計算面積。
6. 常見錯誤和注意事項
- 確保在子類中正確重寫父類的方法,並使用相同的方法名稱。
- 注意使用super()來調用父類的方法,特別是在初始化時。
- 避免過度使用繼承,保持代碼的簡潔性和可讀性。
7. 最佳實踐
- 使用繼承來實現代碼重用,但要確保類之間的關係是合理的。
- 在需要時使用多態,增強代碼的靈活性。
- 保持類的單一職責,避免過於複雜的繼承結構。