我想知道如何将任何子类传递给方法。我有一块瓷砖。 Tiles可以包含字符,但所有字符都是Character的子类。我想设置一个Tile来包含一个角色,因为它是占用者。这就是我想要实现的:
VikingRecruit oden = new VikingRecruit();
this.gameboard.PlaceItem(0, 0, oden);
VikingRecruit是Character的子类。我希望能够传递任何类型的角色。
答案 0 :(得分:3)
@dguay建议的内容。我将首先阅读有关java中多态性的教程,可能是this one。如前所述 - 我会将Character重命名为CharacterPiece或CharacterType,因为Character已在java中定义。
然后你的placeItem(第一个字母应该是小写)方法签名看起来像:
public void placeItem(int a, int b, CharacterPiece piece) { ... }
VikingRecruit应该实现CharacterPiece接口(如果你使用抽象,则扩展)。
public class VikingRecruit implements CharacterPiece { ... }
这会使你上面列出的内容发挥作用。