2

この問題について明確な説明が得られることを願っています。したがって、クラス階層は、AbstractClass、ConcreteClass1、および ConcreteClass2 のようになります。ConcreteClass1 は AbstractClass を拡張し、ConcreteClass2 は ConcreteClass1 を拡張します。

ConcreteClass1 のコンストラクタは次のようになります。

private final AbstractClass parent;

public ConcreteClass1( int id, AbstractClass aParent )
{
  super( id );

  parent = aParent;
}

これがどのような場合に役立つのか知りたいです。null が aParent パラメータに渡されない限り、ConcreteClass1 をインスタンス化する方法がわかりません。同様のコンストラクタが ConcreteClass2 で使用されます (つまり、AbstractClass 型のパラメータも持ちます)。

これは正当な設計であることができますか?

4

2 に答える 2