遞歸函數和其他拓展 課前練習 請實現一個裝飾器,把'函數的返回值'+100然後'返回' def ount(fun): def werrod(*ardes,**warrrts): res=fun(*ardes,**warrrts) return res+100 return werrod @ount ...
在 Java 中,方法重載是指在同一個類中定義多個方法,它們具有相同的名稱但參數列表不同。方法重載的定義如下:
public void myMethod(int arg1) { // 方法體 } public void myMethod(int arg1, int arg2) { // 方法體 } public void myMethod(String arg1) { // 方法體 }
返回值不同不算方法重載
public String myMethod(int arg1) { // 方法體 } public int myMethod(int arg1) { // 方法體 }
因為不同的返回值類型,JVM 沒辦法分辨到底要調用哪個方法,比如以下代碼:
// 方法調用 myMethod(1);
更深層次的原因:JVM 調用方法是通過方法簽名來判斷到底要調用哪個方法的,而方法簽名 = 方法名稱 + 參數類型 + 參數個數組成的一個唯一值,這個唯一值就是方法簽名。從方法簽名的組成可以看出,返回類型不是方法簽名的組成部分,所以不同的返回類型也就不算方法重載了,因為它不能讓 JVM 確定要調用的具體方法。