我有一个正在顺利进行的程序,但我似乎无法提前了解如何将某些类添加到容器中。
我正在为一个 2D 人创建一个 java 程序。我有一个抽象类,BodyPart(所有身体部位共有),DrawablePart 和 ContainerPart 类实现了抽象类,其中 Drawable 部分包括实现的类,如头、腿、脚等;ContainerParts 包括实现的类,例如人 > 上身和下身。
我剩下要做的唯一部分是创建从容器类派生的上半身和下半身类,它有一个 BodyParts 数组。
假设我正在开发从 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”,它会起作用。