如果我声明我的对象实现了一个接口,但是未能实现这些方法,那么当我编译代码时,会出现编译器错误。 java编译器如何知道我没有实现接口的所有方法?
答案 0 :(得分:1)
java编译器如何知道我还没有实现接口的所有方法?
它知道你的类已经实现的所有方法,因为它在编译期间找到并分析了它们。
它知道在类的所有超类和接口中定义的所有方法,因为:
它要么刚刚编译了源代码,要么加载了他们的" .class"文件和
它已经分析了接口/类,并找出了你的类需要实现哪些方法。
然后它比较了两组方法。 (注意,方法不需要完全相同。例如,实际方法可以返回接口中方法的返回类型的子类型。集合比较需要考虑到这一点。)< / p>
(实际上,这只是进行此检查的一种方法。实际的Java编译器可能会以不同的方式进行检查。)