重写toString()方法的目的,主要就是将对象按字符串的方式输出输出自己想要的文字信息在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性。所以要重写toString()方法。toString()是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。都可以重写这个方法。

2、重写是指从父类继承后,子类对父类某方法的具体实现进行修改,不能修改其方法名

3、当System.out.println(对象)时,默认使用toString()方法,将对象转为字符串输出,toString()方法继承于所有类的隐性基类(所有类的Object类),如果某类无重写toString()方法,这时调用toString()将得到(类名+地址名名)这样的字符串。        

3、在写Java代码的时候,当你打印一个对象的时候,实际上是调用对象的toString()方法!比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法。一般out.println(Object) 和 System.out.println(Object),其中输出的都是Object.toString()方法。

不重写情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址,输出结果: Test@7852e922 ==> 类名 + “@” +hashCode值

换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode()),如果想自定义输出信息必须重写toString()方法。

 


 

重写toString()方法的注意事项:

1.必须被声明为public

2.返回类型为String

3.方法的名称必须为toString,且无参数

4.方法体中不要使用输出方法System.out.println()