<pre name="code" class="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);
}
}
打印结果为double array。
Java的重载解析过程是分两个阶段运行的,第一个阶段选取所有可获得并且可应用的方法或构造器;第二阶段在第一阶段选取的方法或构造器中选取最精确的一个。
如果一个方法或构造器可以接受传递给另一个方法或构造器的任何参数,那么第一个方法比第二个方法缺乏精确性。
要想null参数调用Confusing(Object o),可以修改为new Confusing((Object) null);
本文详细介绍了Java中方法重载的解析过程,并通过一个具体实例展示了如何使用方法重载来解决实际问题。
1616

被折叠的 条评论
为什么被折叠?



