将 Object 的任何子类作为参数传递

Pass any subclass of Object as a parameter

我想知道如何将任何子类传递给方法。我有一块瓷砖。 Tiles 可以包含字符,但所有字符都是 Character 的子类。我想设置一个 Tile 以包含一个字符,因为它是占用者。这就是我想要实现的:

VikingRecruit oden = new VikingRecruit();       
this.gameboard.PlaceItem(0, 0, oden);

VikingRecruit 是 Character 的子类。我希望能够传递任何类型的字符。

@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 { ... }

这将使您上面列出的内容起作用。