gpt4 book ai didi

java - 当我打印我的对象时,对象的物种显示为空,而不是说物种(例如应该说炎魔)

转载 作者:行者123 更新时间:2023-12-01 23:20:19 25 4
gpt4 key购买 nike

我需要显示名称、物种名称、生命值和强度。除了物种名称打印为空之外,所有内容都会打印。有什么想法吗?

这是我的主课

if (species.equals("b") || species.equals("B")) {
Creature balrog = new Creature(name, strength, hit);
players.add(balrog);
System.out.println("Current Players: ");
System.out.println("NAME | SPECIES | STRENGTH | HIT POINTS");
for (int i = 0; i < players.size(); i++) {
System.out.println(players.get(i).toString());
}
}

这是在我的 Creature 类中,它将打印所有内容

public String toString() {
String result = name;
result += " | ";
result += species;
result += " | ";
result += strength;
result += " | ";
result += hitPoints;
result += "\n";
return result;
}

最后,炎魔类,生物的子类

Balrog(String name, int strength, int hit){
super(name,strength,hit);
}//ends Balrog constructor

String getSpecies(){
return "Balrog";
}

没有错误消息,它只是在物种名称应该是的地方打印出 null。

最佳答案

您正在创建父类(super class)的实例而不是子类

Creature balrog = new Creature(name, strength, hit);

应该是

Creature balrog = new Balrog(name, strength, hit);

您还需要在 toString 中获取子类的物种

public String toString() {
String result = name;
result += " | ";
result += getSpecies();
result += " | ";
result += strength;
result += " | ";
result += hitPoints;
result += "\n";
return result;

关于java - 当我打印我的对象时,对象的物种显示为空,而不是说物种(例如应该说炎魔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58330656/

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