在 Java 中,能否基於不同的返回型別但相同引數型別和數量來過載方法?
當一個類有兩個或多個方法具有相同名稱但引數不同時,在呼叫時,根據傳遞的引數呼叫相應的方法(或相應的方法體將動態地與呼叫行繫結)。這種機制被稱為 **方法過載**。
示例
class Test{ public int division(int a, int b){ int result = a/b; return result; } public double division (float a, float b){ double result = a/b; return result; } }
使用相同引數和不同返回型別進行過載 -
不,您不能在 Java 中基於不同的返回型別但相同引數型別和數量來過載方法。
在過載中,必須滿足以下條件:
- 相同的方法名稱。
- 不同的引數(不同的型別或不同的數量或兩者兼而有之)。
返回型別無關緊要。如果它們沒有不同的引數,則它們仍然被視為相同的方法,並且會生成編譯時錯誤。
示例
在下面的示例中,我們嘗試過載兩個方法:它們具有相同的名稱(division)和相同引數(兩個整數)。
class Test{ public int division(int a, int b){ int result = a/b; return result; } public double division (int a, int b){ double result = a/b; return result; } }
編譯時錯誤
如果您嘗試編譯上述程式,由於引數不相同,Java 編譯器會將它們視為相同的方法並生成以下錯誤。
OverloadingExample.java:6: error: method division(int,int) is already defined in class Test public static double division (int a, int b){ ^ 1 error
廣告