关于java类的结果

时间:2013-02-21 09:24:40

标签: java constructor-overloading

我正在开发下面的类,当我执行下面的类时,我得到以下结果..

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
你可以解释为什么结果是控制台上的双数组。

2 个答案:

答案 0 :(得分:1)

 Confusing(null) 

方法调用转到最具体的方法

这里是

private Confusing(double[] dArray)

因为double[]引用比通用Object引用更具体

答案 1 :(得分:1)

  

使用最具体的适用过载。

在这种情况下,最具体的是双数组,因此你得到“双数组”作为输出