この問題について明確な説明が得られることを願っています。したがって、クラス階層は、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 型のパラメータも持ちます)。
これは正当な設計であることができますか?