1.了解
在Java中每个类都默认继承Object类,除非声明继承于某个类。
而toString 方法来自于Object 类,作用是:
返回一个字符串,是该Java对象的内存地址经过哈希算法得出的int类型的值在转换成十六进制。

换句话说,该方法返回一个字符串,它的值大概就是等于:

getClass().getName()+’@’+Integer.toHexString(hashCode())

这是一个内存地址经过哈希算法得出的int类型的值在转换成十六进制的东西。等同的看作Java对象在堆中的内存地址。

例子:

package com.zout.toString;  
public class Test {  
    public static void main(String[] args){  
        Object zt = new Object();  
        System.out.println(zt.toString());  
    }  
}

输出结果:java.lang.Object@7852e922
这是直接使用tostring的时候返回的东西。

2.结果
重写toString,object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码。

如果在类中没有重写ToString方法,默认使用的是Object的toString方法输出格式。这个时候,对象就会直接显示hash码。

如果在类中重写toString方法,那么输出格式就会按照我们定义的方式输出这个对象,因此可以这样理解:

重写toString是对对象在打印输出时候的一种格式化。这样做符合业务逻辑,显示结果人性化。

当你print一个对象是你需要这个对象在打印时展现的是什么形态你就把toString重写成你需要的返回形态。