0

複数の異なるタイプのシステムが同じであるかのように Java 内でアクセスできるようにするためのヘルプを探しています。

たとえば、私はクラスを持っています

private class SystemA{

    public void in(boolean input){
      //do x;
    }
    public boolean out(){
      //return x;
    }
}

さまざまなシステムの ArrayList が必要だとします。これらのシステムはすべて SystemA と同様に機能を内外に実装しますが、それらはすべて異なる内部アーキテクチャを持つ異なるオブジェクトになります。

たとえば、すべてのオブジェクトで out() を呼び出して、前述の配列リストを反復処理したいと思います-どうすればよいですか:

複数の異なるオブジェクト タイプを格納します。オブジェクトが特定のタイプであるか別のタイプであるかを心配する必要がなく、arraylist 内のオブジェクトで in および out 関数を呼び出せることを確認します。

4

2 に答える 2

2

システム クラスに新しいMySystemインターフェイスを実装させます。

public interface MySystem {
    void in(boolean input);
    boolean out();
}

例えば:

private class SystemA implements MySystem {
    @Override
    public void in(boolean input) { ... }
    @Override
    public boolean out() { ... }
}

次にArrayList、次のいずれかのようになります。

List<MySystem> list = new ArrayList<MySystem>();
List<? extends MySystem> list = someFactoryMethod();

Java チュートリアル「インターフェースとは」を読むことをお勧めします。詳細については。また、一般的な「サブタイプの多型」についても読んでください。

于 2012-10-28T07:22:00.693 に答える
0

それは幅広い質問です。必要なのはポリモーフィズムです。Java ポリモーフィズムについては、http: //home.cogeco.ca/~ve3ll/jatutor5.htmを参照してください。

于 2012-10-28T07:21:50.210 に答える