为什么此代码打印String... null
?
class OverloadingTest {
public void display(String ref){
System.out.println("String..."+ref);
}
public void display(Object ref){
System.out.println("Object..."+ref);
}
public static void main(String[] args) {
OverloadingTest test=new OverloadingTest();
test.display(null);
}
}
-
多态性在哪里?标题说有,但代码中没有。
-
如果使用了正确的IDE或启用了警告,则
test.display(null);
行将收到警告,或者根据警告设置,甚至是编译错误,告诉您该调用不明确
然后您必须将其转换为test.display((String) null);
或test.display((Object) null);
更新
Eclipse的最新版本(使用Eclipse Build(将不会显示";模糊方法调用";警告。Java编译器部分缺少突出显示这些内容的选项。