問1:Python中有重寫和過載的方法嗎?
- 先說結論:Python因為語言的特性,沒有過載,但是有重寫的方法。
問2:什麼是重寫?
- 1. 先看程式碼:
class Calculator:
def add(self, a, b):
print("我執行了嗎?")
return a + b + 100
def add(self, a, b):
return float(a) + float(b)
cal = Calculator()
print(cal.add(5, 3))
print(cal.add(5.5, 3.3))
- 2. 執行示例:
問3:什麼是過載?
-
1.先看程式碼:
class Animal:
def sound(self):
print("動物叫")
class Dog(Animal):
def sound(self):
print("狗叫")
dog = Dog()
dog.sound()
-
2.執行結果:
總結:
-
過載定義:
- 同一個類中定義了多個同名的方法。
- 在其他語言會根據輸入的型別不同,自動找到要執行的那個。
- 而python是動態語言,所以不支援傳統意義上的過載。
- (個人理解:過載過載,就是重複載入嘛,這裡的重是指“重複”)
-
重寫定義:
- 子類重新定義繼承自父類的方法。
- Python完全支援重寫。
- 當子類中定義了與父類相同名稱的方法時,呼叫子類的該方法會覆蓋父類的同名方法,這就是所謂的重寫。
- (個人理解:重寫就是,老師說你寫的不對,重新寫一遍唄。就是繼承了老師的寫法,但自己又重寫了一遍。這裡的重是指“重新,又一次”
附:重的含義
參考資料:
51部落格:https://blog.51cto.com/u_16213422/7210802
https://www.cnblogs.com/mic112/p/15478708.html
過載和重寫的定義,來自:GPT-4-Turbo