0

クラスが他のスーパークラスからすべてのデータ メンバーを継承できるようにしようとしていますが、他のクラスにのみ関連する不要なデータ メンバーを継承することはありません。

2 つのクラスから継承することはできないため、インターフェイスを使用することにしました。ただし、すべてのインターフェイス変数は public、static、および final です。基本的に、インスタンス変数ではなく定数です。

この問題を克服するためのアイデアはありますか?

追加情報:

では、変数 x、y、および z がクラス E に存在する必要があるとしましょう。

変数 x は、スーパークラス A のすべてのサブクラスで使用されます。変数 y は、スーパークラス A の一部のサブクラスで使用されます。変数 z は、スーパークラス A の一部のサブクラスでも使用されます。

抽象クラス B は抽象クラス A から継承します。B には変数 y が含まれます。抽象クラス C は抽象クラス A から継承します。C には変数 z が含まれます。クラス D は変数 x と y を必要とし、抽象クラス B から継承し、すべて問題ありません。クラス E には、すべての変数 x、y、および z が必要です。ただし、両方のクラスから継承することはできません。

クラス E を取得してすべての変数を取得するにはどうすればよいですか?

4

2 に答える 2

0

継承より合成を優先します。複数の基本クラスから派生した 1 つのクラスを作成しようとする代わりに、それらのクラスのそれぞれのオブジェクトを含む、または関連付けられたクラスを作成します。

于 2013-10-08T20:48:32.067 に答える