呈上篇[Python基礎]類別繼承(Inheritance) 中使用的super()並加以說明,此篇文章主要敘述使用super()
有什麼好處及優點。
super()
:是一個內建函數,用來返回父類別的物件,以便你可以使用這個物件來呼叫父類別的方法或屬性。
flavor
屬性)。範例
繼承父類別Food
的name
與price
屬性
class Food:
def __init__(self, name, price):
self.name = name
self.price = price
class Cake(Food):
def __init__(self, name, flavor, price):
super().__init__(name, price) # 呼叫 Food 類別的 __init__ 方法
self.flavor = flavor # Cake 類別自己特有的屬性
Chocolate_cake = Cake("蛋糕", "巧克力","200")
print(Chocolate_cake.name) #蛋糕
print(Chocolate_cake.flavor) #巧克力
print(Chocolate_cake.price) #200
繼承父類別的屬性有多個好處,尤其是在物件導向程式設計中。在簡短的範例中比較難看出它的好處,假設今天你不只需要創建蛋糕,可能還有麵包或麵食米飯等...沒有用到繼承Food來建立基本的屬性,這樣會讓你的程式碼看起來非常冗長,且難以理解。
以下是一些主要的好處:
1. 程式碼簡潔
- 減少重複程式碼:繼承允許子類別自動擁有父類別的屬性和方法,避免在每個子類別中重複定義相同的屬性和行為。例如,
Cake
類別繼承Food
類別的name
和price
屬性,而不需要再次定義這些屬性。
2. 維護性和可讀性
- 更容易維護:當需要修改父類別中的屬性或方法時,只需在父類別中進行更改,這些更改會自動應用到所有繼承該父類別的子類別中。這使得程式更容易維護和更新。
- 清晰的層次結構:繼承提供了一個清晰的類別結構,使得程式的層次更易於理解,從而提高可讀性。
3. 擴展功能
- 靈活擴展:子類別可以繼承父類別的屬性和方法,然後根據需要擴展或修改這些屬性和方法。例如,
Cake
類別可以在Food
的基礎上新增flavor
屬性,實現專屬於蛋糕的功能。
4. 多型性
- 多型性支援:繼承允許多型性,這意味著可以在不修改子類別代碼的情況下,通過父類別的引用來操作子類別的物件。這在設計更靈活的系統時非常有用。例如,你可以有一個處理
Food
類別物件的函數,而這個函數也可以處理Cake
、Bread
等等這些繼承自Food
的物件。