要知道这个必须先知道一点:java中所有的类都是Object的子类,而在Object中,有toString的方法,这个方法就被所有的类继承了。在官方文档中有:
public void println(Object x)Prints an Object and then terminate the line. This method calls at first String.valueOf(x) to get the printed object's string value, then behaves as though it invokes print(String) and then println(). 意思就是说在用System的out对象输出一般对象的时候,String类的valueOf方法会被调用,我们看valueOf方法是怎样返回的:if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned.显然,最终会调用对象的toString,所以如果你没有重写这个toString的方法的话,调用的是Object的方法,返回的就是默认的返回结果,如果重写了就是你想要得到的结果。作者: 下雨天 时间: 2013-7-13 23:50
简单的说:
如果调用toString方法的是一个String类对象 那么你就不必去覆写toString方法了 因为String类已经为你做好了
如果调用toString方法的不是String类对象 那么你最好覆写toString方法 因为Object类让toString方法返回的是一个哈希地址值 作者: 阿凡提不买驴 时间: 2013-7-14 11:33
好的,谢谢各位,我明白了!