Java 小細節——方法基本類型參數的重載

閱讀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方法。如果都沒有,就會編譯報錯。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章