我有三个班级
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);
}
}
输出应该是“冠军是ori” 但我得到: “冠军是javaapplication2.Mage@1fee6fc”
我做错了什么?
答案 0 :(得分:8)
您需要覆盖toString()
中的Champion
,因为super.toString()
中对Mage.toString()
的调用将会调用Object.toString()
。
答案 1 :(得分:0)
致电super.toString()
,您可以拨打Object
toString()
方法,为您提供所见的结果。
您需要实施Champion
toString()
方法。