本帖最后由 wll_sx1990 于 2013-7-13 23:42 编辑
要知道这个必须先知道一点: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的方法,返回的就是默认的返回结果,如果重写了就是你想要得到的结果。 |