首先,我有两个相关的类:Enemies.java和Sarz.java。敌人扩大了萨尔茨。
public class Enemies extends Sarz {
它有一个数组,里面有一些敌人。
enemies[0] = new Enemies("Dragon", 100, 100, "Cave");
enemies[1] = new Enemies("Saturn Fly Trap", 10, 15, "Forest");
在Sarz中,我制作了一个Sarz类型的数组,并在其中存储了一些随机生成的敌人。
Enemies e = new Enemies();
e.generateEnemies();
Sarz[][] map = new Sarz[5][5];
while (count < 4){
row = r.nextInt(5);
column = r.nextInt(5);
if (map[row][column] == null){
map[row][column] = e.enemies[r.nextInt(8)];
System.out.println(map[row][column].getName() + " at " + row + "," + column);
count++;
}
}
我的问题是,当我使用该println语句进行测试时,它们已经正确存储在随机位置中,但是我似乎无法获得任何东西来将敌人的名字还给我。我已经尝试使用Arrays.toString()和Enemies类的getter和setter方法,但是它们不能用于map数组,因为它是Sarz类型。我希望能够使用map [row] [column] .getEnemyName()或至少返回1,0而不是Enemies @ 14ae5a5的字符串。
最佳答案
由于Enemies
扩展了Sarz
,因此可以将Sarz
强制转换为Enemies
的对象(如果它是有效对象)。因此,您可以执行以下操作:
System.out.println(((Enemies)map[row][column]).getEnemyName() + " at " + row + "," + column);