java - 如何在数组的对象上使用另一个类的方法?

标签 java arrays

对于初学者来说,我有两个相关的类: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);

关于java - 如何在数组的对象上使用另一个类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938285/

相关文章:

java - 从另一个类获取 TextView

java - 无法打开 .jar 文件。 JNI 错误。 java.lang.NoClassDefFoundError : org/apache/commons/exec/ExecuteStreamHandler 错误

arrays - d 中的动态关联数组

javascript - 如何根据 bool Prop 和名称 Prop 对数组进行排序?

java - 在每个具体类的一对一表结构中创建外键

java - Maven 如何在 Spring 教程中帮助我

python - 如何使用未知长度的列表对 np.array 进行切片?

java - 空数组时显示错误

java - 在 Java 中使用多维数组

java - 解析Java源代码以查找类、属性和方法