When we need a String representation of an object, we can override the toString() method. However, what are the real benefits and reasons for overriding toString() when we can just define a new method to return the string?
Please see example below:
class One
{
    private String name;
    public One(String _name)
    {
        name = _name;
    }
    @Override public String toString()
    {
        return name;
    }       
}
class Two
{
    private String name;
    public Two(String _name)
    {
        name = _name;
    }
    public String printMyClass() //Self-defined to print class details
    {
        return name;
    }       
}
In the above example, printMyClass() which is self-defined seemed to does the same thing as toString().
So my question is: Why do we still use toString() ?