複数のインターフェイスと、それらすべてを実装するクラスがあります。実装クラスのインスタンスでこれらのインターフェイスで定義されたすべてのメソッドを呼び出したいのですが、変数をクラス型として宣言したくないので、まだインターフェイスにプログラミングしています。
次のいずれかを行う必要があるようです。
- オブジェクトをあるインターフェイス タイプから別のインターフェイス タイプにキャストして、適切なメソッドを呼び出します。
- 他のものを拡張するユニオン インターフェイスを作成し、その型の変数を宣言します。
1 はタイプ セーフではなく、2 はそれ自体に何も追加しない多くの「ユニオン」インターフェイスですぐに終了することを意味するため、これらのいずれも実行しないことをお勧めします。次のようなものを持つことは可能ですか:
public interface A {
public void doThis();
}
public interface B {
public void doThat();
}
public class C implements A, B {
public void doThis(){;}
public void doThat(){;}
}
//Fake calling code:
public void go() {
A,B dualTypedInstance = new C(); //
dualTypedInstance.doThis();
dualTypedInstance.doThat();
}
これは本当に可能であるように思われます。ありがとう。