为了账号安全,请及时绑定邮箱和手机立即绑定

为什么打印对象的时候调用的是toString()方法?

为什么打印对象的时候调用的是toString()方法?

道临 2016-07-20 10:48:52
例如:package k; public class Animal { public int age=10; public Animal(){ System.out.println("animal class is running"); } }package k; public class Dog extends Animal { public Dog(){ System.out.println("dog class is running"); } }package k; public class HelloWorld { public static void main(String[] args){ Dog dog=new Dog(); System.out.println(dog); } }结果:animal class is running dog class is running k.Dog@1db9742打印dog对象时有那么多方法不用,为什么只打印了toString()
查看完整描述

4 回答

已采纳
?
Raelovejava

TA贡献10条经验 获得超6个赞

不明白你问的是什么…toString方法是Object类的方法,所有类都从Object类继承。在参数是一个对象时,会首先调用该对象的toString方法

查看完整回答
2 反对 回复 2016-07-20
?
KevinHY

TA贡献4条经验 获得超3个赞

Java中输出一个类的对象的时候,会调用这个Object类的toString()方法。自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样的:getClass().getName() + "@" + Integer.toHexString(hashCode())。后面跟的是这个类的哈希码值,如果希望这个类打印出你希望的格式,你就要覆盖toString方法,按照你自己想要的格式对toString()方法进行重写。

查看完整回答
3 反对 回复 2016-07-20
?
笑揽清溪月

TA贡献4条经验 获得超7个赞

打印对象信息时,会调用toString方法。现在的Dog类中的方法是构造方法,创建对象时调用该方法。

查看完整回答
反对 回复 2016-07-20
?
大咪

TA贡献785条经验 获得超332个赞

打印对象我记得好像只能用toString方法吧- -,你这段程序的目的在于告诉你,如果打印输出子类,先运行的会是父类,然后再运行子类结果。。至于你说的那个我没太懂- -。。

查看完整回答
反对 回复 2016-07-20
  • 4 回答
  • 0 关注
  • 3527 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信