参数的问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:28:56
public class Confusing
{
private Confusing(Object o) {
System.out.println("object");
}

private Confusing(double[] array) {
System.out.println("array");
}
public static void main(String [] args) {
new Confusing(null);
}
} 为什么输出结果为array

这种匹配,是匹配最特殊的一个,比如如果有Object和double[]则会匹配double[],因为其比Object更特殊,更具体一点。

Confusing类的有两个带参数的构造函数,而构造函数是用来初始化类的
语句new Confusing(null)的作用就是初始化类,此时如果构造函数里语句,是要被执行的

上面的new Confusing(null)中参数虽然是null,但其实上面的两个构造函数的参数对输出语句都是没有任何影响的,所以不管怎样,输出是array!