java编译器如何检查接口中的所有方法是否都已实现?

时间:2016-07-27 14:36:50

标签: java javacompiler

如果我声明我的对象实现了一个接口,但是未能实现这些方法,那么当我编译代码时,会出现编译器错误。 java编译器如何知道我没有实现接口的所有方法?

1 个答案:

答案 0 :(得分:1)

  

java编译器如何知道我还没有实现接口的所有方法?

它知道你的类已经实现的所有方法,因为它在编译期间找到并分析了它们。

它知道在类的所有超类和接口中定义的所有方法,因为:

  1. 它要么刚刚编译了源代码,要么加载了他们的" .class"文件和

  2. 它已经分析了接口/类,并找出了你的类需要实现哪些方法。

  3. 然后它比较了两组方法。 (注意,方法不需要完全相同。例如,实际方法可以返回接口中方法的返回类型的子类型。集合比较需要考虑到这一点。)< / p>

    (实际上,这只是进行此检查的一种方法。实际的Java编译器可能会以不同的方式进行检查。)