インターフェイスに関するOracleドキュメントには、非常に紛らわしい文があります
Relatable
さまざまなクラスで実装することを強調すると、それらのクラスのいずれかからインスタンス化されたオブジェクトをメソッドと比較できますfindLargerThan()
(両方のオブジェクトが同じクラスである場合)。
これを理解したかどうかはわかりません。
クラスがあり、インターフェイスA
をB
実装していて、次のようRelatable
なコードがあるmain()
とします。
A a = new A();
B b = new B();
System.out.println(a.isLargerThan(b));
印刷が機能するように、isLargerThan()
メソッドがインターフェースに従ってを返すと仮定します。int
上記のコードは、どのクラス A および B でも機能しますか? 各クラスの実装が異なり、おそらく
isLargerThan()
それぞれのクラスの実装でクラスの型にキャストされているため、これは不可能だと思います。上記の推論が正しい場合、オラクルのドキュメントで強調されている理由は何ですか? それが私の混乱の元です。
それが機能するかどうかを確認するために実装する必要があることはわかっていますが、私はJavaの初心者であるため、実装自体が機能しない可能性があります。だからこそ、ここで質問しました。