Javaでインターフェースを持っているとしましょう:
interface I {
void add(I foo);
}
、およびこのインターフェースを実装する 2 つのクラス C と D もあります。
私だけができるようにインターフェイスを変更する方法はありますか:
C c = new C();
c.add(new C());
、 だがしかし
c.add(new D());
?
試験でこの質問がありましたが、私の唯一のアイデアは、メソッドの定義でinstanceof演算子を使用することでした。
class C implements I {
public void add(I foo) {
if (foo instanceof C) {
System.out.println("instance of C");
} else {
System.out.println("another instance");
}
}
}
ただし、同じ効果が得られるようにインターフェイスを変更する方法がわかりません。
ありがとう