“Java通行证”;空";到重载方法
有人能告诉我为什么要运行这个代码吗“Java通行证”;空";到重载方法,java,Java,有人能告诉我为什么要运行这个代码吗 public class MainClass{ public void method(Object obj){ System.out.println("+++++++++obj"); } public void method(A a){ System.out.println("**********a"); } public static void main(String[] args){
public class MainClass{
public void method(Object obj){
System.out.println("+++++++++obj");
}
public void method(A a){
System.out.println("**********a");
}
public static void main(String[] args){
new MainClass().method(null);
}
}
我得到这个结果:
**********a
如何将null引用解析为“a”对象引用?大多数特定方法在运行时选择<代码>对象比对象更具体
A a = null;
这是有效的
因此,当您传递null
时,它将选择(A)
以下是运行时选择的最具体的方法<代码>对象比对象更具体
A a = null;
这是有效的
因此,当您传递null
时,它将选择(A)
以下是可以解析为任何内容的
null
,因此将使用最具体的方法。添加一个参数类型为B
的方法,编译器应该抱怨参数不明确。这不是重写,而是重载,而且对我来说似乎并不十分模糊。您是否希望A=null
编译失败?null
可以解析为任何内容,因此将使用最具体的方法。添加一个参数类型为B
的方法,编译器应该抱怨参数不明确。这不是重写,而是重载,而且对我来说似乎并不十分模糊。您是否希望A=null代码>编译失败?