Why do I get these weird output? please look over my code
<p>Inheritance small problem: I have three classes</p>

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

}
</code></pre>

<p>second:</p>

<pre><code>public class Mage extends Champion {

    public Mage(String ChName)
    {
        super(ChName);
    }

    public String toString()
    {
        return String.format("%s",super.toString());
    }
}
</code></pre>

<p>and my main:</p>

<pre><code>public class JavaApplication2 {

    public static void main(String[] args) {
      Mage mage = new Mage("ori");
      System.out.println("champion is "+mage);          
    }

}
</code></pre>

<p>and the output should be "champion is ori"
but I get:
champion is javaapplication2.Mage@1fee6fc</p>

<p>help please!</p>
