0

私は3つのクラスを持っています

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;
    }

}

2番目:

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」になるはずですが、「champion is javaapplication2.Mage@1fee6fc」と表示されます。

私は何を間違っていますか?

4

2 に答える 2

8

inの呼び出しはを呼び出すため、intoString()をオーバーライドする必要があります。Championsuper.toString()Mage.toString()Object.toString()

于 2012-12-18T17:16:57.577 に答える
0

super.toString()メソッドを呼び出すことでObject toString()、表示される結果が得られます。

メソッドを実装する必要がありますChampion toString()

于 2012-12-18T17:19:12.177 に答える