首先我们查看println的方法定义,有:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
此处主要利用了Java中所有对象都继承了Object类,而Object类内有toString()方法。
都到这你肯定有疑问,即使你说的完全正确,但是也没见得调用了对象的toString();此疑问的解答,在于String中静态方法valueOf()方法利用到了对象的toString()方法。我们有:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
这样就完整地解答了此问题。