呈上篇[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來建立基本的屬性,這樣會讓你的程式碼看起來非常冗長,且難以理解。
Cake
類別繼承 Food
類別的 name
和 price
屬性,而不需要再次定義這些屬性。Cake
類別可以在 Food
的基礎上新增 flavor
屬性,實現專屬於蛋糕的功能。Food
類別物件的函數,而這個函數也可以處理 Cake
、Bread
等等這些繼承自 Food
的物件。