Java对象重写toString()方法的意义

一、万类继承Object

    Java在学到继承的时候,我们会知道,Object会是所有类的顶级类,其他类会隐性的继承Object类,何以见得会继承Object呢?口说无凭,直接看代码。

 

    在上面,我定义了一个类TestObject,在main方法里面创建了这个对象,从左边代码行数可以看出,我这里代码没有超过9行,但调用TestObject实例化对象时,却出现了这么多方法。clone(),equals(),finalize()......这些方法我在当前类压根就没写。那出现这么多方法的原因是什么呢?

 

   

    可以看到,方法后面写了来源,可见这个方法是来源于Object。

    我们在进到Object的源码看看,里面到底有些啥东东。

 

   

    可以看到,刚刚在上面见到的方法,Object类里面全都有,这下就能解释万类基于Object的事实了,我们并没有显式的继承Object,但Java偷偷的将我们写的类送了个爸爸

    好,解释到这一层,我们就可以探讨重写toString()方法的意义了。从上面Object源码的图片上我们可以看到toString()方法,

    这里返回了当前类的名字加上哈希码。(代码具体细节不解释,先知道是这回事就好

    我们回到我们自定义的TestObject类中输出一下

 

   

    从控制台中的输出,不难看出就是Object类里的toString()方法返回的结果。

 

二、为什么重写toString()方法呢?

假设我们自定义了一个类Student

我们没有重写toString()方法,那我们实例化Student对象时,想要输出对象里面的属性值,会出现这种情况。

可以看出,这里调用的是Object对象的toString()方法

重写toString()方法后

    重写后覆盖了原来Object类的toString()方法,这样就得到了我们想要的信息啦。

 

三、总结

    重写toString()方法其实是为了输出对我们有用的信息,不重写输出的信息没啥用。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值