在 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP