gpt4 book ai didi

java - 访问扩展类方法

转载 作者:行者123 更新时间:2023-12-01 14:05:29 25 4
gpt4 key购买 nike

我有一个名为Occupant的类和扩展的Occupant类,用于不同的占用类型,例如动物、食物、工具、宝藏

所有居住者都放置在GridSquares上,一个正方形最多可容纳3名居住者

Occupant 类有一个方法,可以在给定位置时获取 GridSqure 上的所有占用者。该方法将返回一个具有扩展占用类别的占用数组。(例如:动物、工具和食物)。

   Occupant[] allOccupants = newGridSquare.getOccupants();

for ( Occupant oneOccupant : allOccupants)
{
if(oneOccupant.getStringRepresentation() == "A")
{

player.reduceStamina(oneOccupant.getDanger());

}
}

编译器无法访问 Animal 类中的 getDanger 方法,因为我已经将其指定为 Occupant。

如何访问扩展 Occupant 类 Animal 中的 getDanger 方法?

最佳答案

您可以转换实例

for ( Occupant oneOccupant : allOccupants)
{
if("A".equals(oneOccupant.getStringRepresentation()))
{
Animal animal = (Animal) oneOccupant;
player.reduceStamina(animal.getDanger());
}
}

假设“A”Animal实例的标识符,并且Animal是Occupant的子类并且具有getDanger () 方法。否则,首先进行检查

if (oneOccupant instanceof Animal) {
Animal animal = (Animal) oneOccupant;
player.reduceStamina(animal.getDanger());
}
<小时/>

相关:

关于java - 访问扩展类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com