猿问

即使在Java中出现编译错误,我也可以创建一个类对象

今天,我遇到了一个场景,其中我没有覆盖子类中接口的所有方法。但是,当我尝试创建子类的对象时,它仍然可以正常工作。到目前为止,我的假设是除非解决所有编译错误,否则我们将无法创建对象。


请对此有所说明。


我举的例子。


interface Parent {

   public void test();

}


class Child implements Parent {

   public void print() {

      System.out.println("Didn't expect to print");

   }

}

Child类给了我编译时错误,要求我重写接口中的方法。忽略该错误,当我尝试创建如下所示的对象并执行下一条语句时,它给出了底部所示的输出。


Child child = new Child();

child.print();

输出:


Didn't expect to print

PS:我在Java 7上尝试过


如果我的基本理解(不能解决编译错误就无法创建Java对象),请告诉我


隔江千里
浏览 164回答 3
3回答

慕容3067478

仅当您的IDEChild在Parent将其作为超类添加到类之前缓存了该类时,才有可能这样做。否则,它将根本无法编译。

呼唤远方

如果有任何机会在类路径中有两个具有相同名称和包的类,则Java将查找它找到的第一个类并使用它。因此,如果已经有您的Parent.class的另一个版本,但没有添加功能,则可以在新版本上进行选择。
随时随地看视频慕课网APP

相关分类

Java
我要回答