閱讀2分鐘,掌握一個Java小細節,你值得擁有!
方法重載指的是方法名相同,參數列表不同(不同的參數類型或者參數順序或者參數個數)的情況。不過你真的瞭解麼?看看下面這個例子。
public class PrimitiveOverloading {
void f1(char x){
System.out.println("f1(char)");
}
void f1(byte x){
System.out.println("f1(byte)");
}
void f1(short x){
System.out.println("f1(short)");
}
void f1(int x){
System.out.println("f1(int)");
}
void f1(long x){
System.out.println("f1(long)");
}
void f1(float x){
System.out.println("f1(float)");
}
void f1(double x){
System.out.println("f1(double)");
}
public static void main(String[] args) {
PrimitiveOverloading over = new PrimitiveOverloading();
over.f1(5);
}
}
輸出結果是什麼?爲什麼呢?讓我們實踐一下。
你會發現常數5被當做int值處理,所以如果某個重載方法接受int型參數,它會被調用。至於其他情況,如果傳入的數據類型(實際參數類型)小雨方法中聲明的形式參數類型,實際數據類型就會被提升。
如果沒有接受int的方法,就會考慮使用float方法->double方法。如果都沒有,就會編譯報錯。