我正在开发下面的类,当我执行下面的类时,我得到以下结果..
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
你可以解释为什么结果是控制台上的双数组。
答案 0 :(得分:1)
Confusing(null)
方法调用转到最具体的方法
这里是
private Confusing(double[] dArray)
因为double[]
引用比通用Object
引用更具体
答案 1 :(得分:1)
使用最具体的适用过载。
在这种情况下,最具体的是双数组,因此你得到“双数组”作为输出