[英]Pass any subclass of Object as a parameter
我想知道如何将任何子类传递给方法。 我有一块瓷砖。 图块可以包含字符,但所有字符都是 Character 的子类。 我想设置一个 Tile 来包含一个角色作为它的占用者。 这是我想要实现的:
VikingRecruit oden = new VikingRecruit();
this.gameboard.PlaceItem(0, 0, oden);
VikingRecruit 是 Character 的一个子类。 我希望能够传递任何类型的字符。
@dguay 建议的内容。 我将首先阅读有关 Java 中多态性的教程,也许是这个。 如前所述 - 我会将 Character 重命名为 CharacterPiece 或 CharacterType 之类的东西,因为 Character 已经在 java 中定义了。
然后你的 placeItem(第一个字母应该是小写)方法签名看起来像:
public void placeItem(int a, int b, CharacterPiece piece) { ... }
并且 VikingRecruit 应该实现 CharacterPiece 接口(或者扩展,如果你使用抽象)。
public class VikingRecruit implements CharacterPiece { ... }
这将使你上面列出的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.