物件導向程式設計中,子類別透過覆寫父類別函數來擴展其行為。覆蓋函數需使用 override 關鍵字,子類別函數簽章必須與父類別完全相同。優點包括:自訂父類行為、維持父類別功能、提升程式碼可重複使用性。注意匹配函數簽章、呼叫父類實作和謹慎覆蓋。
在物件導向程式設計中,子類別可以覆寫父類別的函數以修改或擴展其行為。這允許子類別專門化父類別的功能,同時保持父類別的基礎功能。
在子類別中覆寫父類別函數需要使用 override
關鍵字。此關鍵字指示編譯器,您要覆寫父類別中的函數。您必須確保子類別的函數簽名與父類別的函數簽名完全相同,包括函數名稱、參數清單和傳回值類型。
class Parent: def say_hello(self): print("Hello from parent class!") class Child(Parent): def say_hello(self): super().say_hello() print("Hello from child class!")
在這個範例中,Child
類別覆寫了 Parent
類別的 say_hello
函式。子類別的函數呼叫 super()
方法來存取父類別的原始實現,然後加入自己的行為。
讓我們考慮一個計算器類別的範例,其中我們希望新增日誌功能。
class Calculator: def add(self, a, b): return a + b class LoggingCalculator(Calculator): def add(self, a, b): print(f"Adding {a} and {b}") return super().add(a, b)
在這個例子中,LoggingCalculator
類別覆蓋了 Calculator
類別的 add
函數以新增日誌。每次呼叫 add
方法時,它都會列印要新增的數字,然後呼叫父類別 Calculator
中的原始 add
方法進行實際新增。
函數覆寫提供了以下優點:
super()
呼叫父類別的原始實現,以避免方法覆寫導致的行為遺失。 以上是覆寫父類別函數:理解子類別對父類別行為的擴展的詳細內容。更多資訊請關注PHP中文網其他相關文章!