1. 程式人生 > >在同一個類中過載方法的互相呼叫

在同一個類中過載方法的互相呼叫

在同一個類中,有兩個過載的方法

    public void overload(Integer i){
        Number num = (Number)i;
        overload(num);
        System.out.println("overloadIngeger");
    }

    public void overload(Number num) {
        System.out.println("overloadNumber");
    }

第一個方法的引數為Number型別,第二個方法的引數是Integer型別

Number類繼承Integer類,在第一個方法裡面呼叫overload(Number num)方法,傳遞的引數為Number型別

執行後,輸出的結果為overloadNumber,而不是overloadIngeger

說明jvm在遍歷過載的方法時,會優先執行小的引數型別的方法