1、首先,在java中所有的对象都是继承自Object类,所以自然继承了toString方法:
2、在使用system.out.println()方法,括号里面为对一个对象的引用时
将会自动调用toString方法将对象打印出来。如果重写了toString()方法则会调用重写的toString()方法。
那么原因是什么呢?
**因为System.out.println()方法的源码中调用了String valueOf(Object o)方法:
而String.valueOf(x)的源码就是去调用该对象的toString方法,源码如下: