如果你实现了一个接口,编译器会要求你提供这些方法的实现。Cloneable
但是在调用覆盖的 clone() 方法的情况下,编译器如何知道在类声明中没有提到特定的接口(在这种情况下)。编译器如何将此映射告诉用户 CloneNotSupported ?它与后期绑定有关吗?
我认为 JVM 有关于方法区域中每个类的信息,比如它正在扩展什么类以及它正在实现什么接口。所以调用 clone() 方法将检查那些存储的关于类的元数据,并发现它Cloneable
不在那个接口列表中?这是接近正确答案的地方吗?