Java 为什么我会得到这种奇怪的输出?
我有三节课Java 为什么我会得到这种奇怪的输出?,java,Java,我有三节课 public abstract class Champion { private String name; public Champion(String ChName) { name = ChName; } public void setName(String ChName) { name = ChName; } public String getName() {
public abstract class Champion
{
private String name;
public Champion(String ChName)
{
name = ChName;
}
public void setName(String ChName)
{
name = ChName;
}
public String getName()
{
return name;
}
}
第二:
public class Mage extends Champion {
public Mage(String ChName)
{
super(ChName);
}
public String toString()
{
return String.format("%s",super.toString());
}
}
我的主要观点是:
public class JavaApplication2 {
public static void main(String[] args) {
Mage mage = new Mage("ori");
System.out.println("champion is "+mage);
}
}
输出应为“champion is ori”
但我得到:
“冠军是javaapplication2。Mage@1fee6fc"
我做错了什么?您需要在
Champion
中重写toString()
,因为Mage.toString()
中对super.toString()
的调用将调用Object.toString()通过调用super.toString()
方法调用对象,给你你看到的结果
您需要实现Champion
toString()
方法。谢谢您,先生,很抱歉给您带来麻烦。“从现在起,我会记得这样做的。@user1913592,没问题,不需要道歉。”。