私は順調に進んでいるプログラムを持っていますが、特定のクラスをコンテナーに追加する方法について先を行くことができないようです。
私は2Dの人だけのためのJavaプログラムを作成しています。抽象クラスBodyPart(すべてのボディパーツが共通に共有)があり、DrawablePartクラスとContainerPartクラスは抽象クラスを実装します。Drawableパーツには、頭、脚、足などの実装クラスが含まれます。また、ContainerPartsには、person> upperbody&lowerbodyなどの実装されたクラスが含まれています。
私がしなければならない唯一の部分は、BodyPartsの配列を持つcontainerクラスから派生したupperbodyクラスとlowerbodyクラスを作成することです。
ContainerPartから派生したLowerBodyコンテナに取り組んでいるとしましょう。LegsとFeetの配列(DrawablePartから派生)を含むことができるLowerBodyコンストラクターを作成するにはどうすればよいですか?LowerBodyとUpperBodyをContainerPartから派生したAvatarコンテナから派生させたいのですが。
コードを表示せずに答えを得るのは難しいことは知っていますが、クラスから以下に作成したこのUMLダイアグラムを使用して、誰かがそれを説明できると思います。
これがUML図です:
これは、BodyPartsの配列を持つContainerPartコンストラクターです(superはBodyPartからのものです)。これは私が欲しいものですが、LowerBodyのコンストラクターにはLegやFeetなどの特定のパーツが必要です。
public ContainerPart(String name, String color, int xCoord, int yCoord, BodyPart[] yourParts) {
super(name, color, xCoord, yCoord);
parts = yourParts;
}
上記のコンストラクターに示されているように、コンテナークラスには、BodyPartsの配列のインスタンスフィールドがあります。しかし、複数の派生BodyPartを使用しようとすると、次のようになります。
ただし、super()で「yourFoot」と言うだけの場合は機能します。