私は Functional Interface の初心者で、今日はいくつかのチュートリアル サイトから学んでいます。質問があります。あなたの提案を提供し、私を導いてください。
以下のコードに質問があります。
@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.
質問:オブジェクト clone(); のときにコードが機能するようになりました。メソッドはコメントされていません。つまり、このメソッドはインターフェイス Demo で宣言されています。しかし、その実装をクリックすると、Object クラスの clone() メソッドに移動します。
clone() メソッドをコメントし、equals() メソッドのコメントを外すと、コンパイル時エラーが発生します。インターフェイスは FunctionalInterface ではありません。どうして ??????なぜ clone() メソッドとの機能的なインターフェースなのか。
clone() が保護されているとは言わないでください。クローンが Object クラスで保護されている場合はどうなりますか。説明してください。
ありがとう、澤井