我是功能界面的新手,今天我从几个教程网站学习。我有一个问题请提供您的建议并指导我。
下面提到的代码对我有一个问题。
@FunctionalInterface
interface Demo {
Object clone(); // protected
//int hashCode(); // public
//boolean equals(Object c); // public
//public void wait(); // final so we cannot override this one.
}
对象类是所有 java 类的父类。这里的 wait() 方法说没有被覆盖,因为这是最终的。所以这意味着 Demo 接口也是 Object 类的子类(一般而言)。
> @FunctionalInterface means interface with exact one method declaration.
问题:所以,现在代码在Object clone(); 方法没有注释。所以意味着这个方法是在接口 Demo 中声明的。但是当我们点击它的实现时,我们会移动到 Object 类的 clone() 方法。
当我们注释clone()方法和取消注释equals()方法时,我们得到编译时错误,接口不是FunctionalInterface。为什么 ??????以及为什么它与 clone() 方法的功能接口。
请不要说 clone() 是受保护的,如果克隆在 Object 类中受保护是怎么回事。请为我解释。
谢谢,萨维