0

これはおそらくかなり基本的なことだと思いますが、これを行う方法がわからないことを恥じています (さらに悪いことに、解決策を探すことができませんでした)。

A から C に Thing型のオブジェクトを渡すにはどうすればよいですか?

public class A extends B {

}

public class B {

    public class thing {

    }

}

public class C extends JFrame {

}

B を拡張しているので Aにアクセスできますが、JFrame を拡張する必要があるため、クラス C を使用する場合は B を拡張できません。

編集

あいまいで申し訳ありません。クラス A にはThing型のオブジェクトのコレクションがあり、クラス C でそれらのオブジェクトを反復処理したいと考えています。

編集2

そしてもちろん... 当然の選択です。独自のクラスにする... :(

このような問題を抱えている可能性のある人のために恥を認めます。

4

3 に答える 3

4

まず、それが内部クラスの場合、おそらく外部からアクセスするべきではありません...
しかし、もしあなたが主張するなら、次のようにすることができます:

public class A extends B {

}

public class B {

    public class thing {

    }

    private thing mything = new thing();
    public thing getThing(){
      return mything;
    }

}

public class C extends JFrame {
      A a = new A();
      Object thing = a.getThing();
}
于 2012-09-16T05:13:19.873 に答える
0

外部から内部クラスにアクセスすることは一般的には悪い考えですが、どうしても必要な場合は、次の記事のようなデリゲート デザイン パターンを参照することをお勧めします。

委任設計パターン

于 2012-09-16T05:21:15.470 に答える
0

Java では不可能な多重継承を使用しようとしている可能性があります。インターフェイスを使用して2つの異なる動作をさせるか、いくつかの設計パターンを使用してそのような目標を達成できます。

あなたが何をしようとしているのかは本当に不明です.しかし、コンポジットまたはファクトリメソッドのパターンを見ると、それが役立つと思います.

于 2012-09-16T05:47:00.317 に答える