2013-02-21 22 views
1

我開發了下面類的結果,當我執行下面的類我得到以下結果.. 對於一個Java類

public class Confusing {  
    private Confusing(Object o) { 
     System.out.println("Object"); 
    } 

    private Confusing(double[] dArray) { 
     System.out.println("double array"); 
    } 

    public static void main(String[] args) { 
     new Confusing(null); 
     // new Confusing((Object)null); 
    } 
} 

輸出: -

double array 

你能不能請解釋爲什麼結果是在控制檯上雙陣列。

回答

1
Confusing(null) 

方法調用轉到最具體方法

,在這裏它的

private Confusing(double[] dArray) 

double[]參考比一般Object參考更具體的

1

最具體的適用過載被使用。

在這種情況下,最具體的是雙陣列這樣你可以獲得「雙陣列」作爲輸出

相關問題