多态性是如何在下面的代码中工作的



为什么此代码打印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);

}
}
  1. 多态性在哪里?标题说有,但代码中没有。

  2. 如果使用了正确的IDE或启用了警告,则test.display(null);行将收到警告,或者根据警告设置,甚至是编译错误,告诉您该调用不明确
    然后您必须将其转换为test.display((String) null);test.display((Object) null);

更新

Eclipse的最新版本(使用Eclipse Build(将不会显示";模糊方法调用";警告。Java编译器部分缺少突出显示这些内容的选项。

相关内容

  • 没有找到相关文章

最新更新