在 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

更新於: 2019年7月30日

8K+ 閱讀量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告