将 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 { ... }
这将使您上面列出的内容起作用。
我想知道如何将任何子类传递给方法。我有一块瓷砖。 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 { ... }
这将使您上面列出的内容起作用。