繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM