java tostring 父类_Java之toString方法

在Java中所有的类都有一个共同的父类Object(默认继承,不用加extends关键字),toString方法就是Object类的一个方法,用来返回该对象的字符串表示形式(个人总结:需要把该类转换成String类型的时候就会调用该方法)

父类Object中的toString()方法

661688c59aad6544f1cd56f1fde1062e.png

可以看到该方法返回的是"类名@hashCode值"形式的字符串

但这并不是我们所想要的结果,我们希望这个方法返回的是该类的所有属性拼接的字符串,Object的toString方法已经不够用了,因此,我们需要重写该方法

23068dfa0cbebb22d64848bfdc60217f.png

既然已经重写好了该方法,那该方法是什么时候被调用的呢?

我们经常使用System.out.println()方法来打印一个基本类型的变量或引用变量,我们根据源代码来查看是如何运行的:

System.out.println()通过标准输出流对象调用println()方法

9453d26c4349080447c67c1a7fa47a08.png

该方法是用于打印基本类型变量或引用变量,我们在看看prinln()方法是如何实现的?

7f9a0fdec1f49900c754e05984155c03.png

该方法被重载了,基本类型的参数直接打印出该值,我们主要关注引用类型参数是如何实现

c5072ca7c0faf4653eae26d6b143fd27.png

String.valueOf()方法用于返回Object参数的字符串表示形式,将该值用String类型的变量s接收,并打印出来,我们在看看valueOf()方法是怎么实现的

e9039c2317211be2af8288b22393ee3e.png

若该引用变量不是指向空引用,则调用该引用变量所指向的对象的toString方法

由此,我们可以判断,当System.out.println()中的参数类型是基本类型参数时,直接打印,若是引用类型时,调用该引用类型所指向的对象的toString方法,如果该子类对象不重写toString方法,则打印的是"类名@hashCode值"形式的字符串,通常建议重写toString方法


版权声明:本文为weixin_26713059原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。