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

为啥这样写还是输出的是地址?

package com.imoic;


public class Initail {

/**

*/

public static void main(String[] args) {

Dog dog=new Dog();

System.out.println(dog.tostring());

}

为什么要在dog那个方法里面去写tostring,这样写不是一样可以吗?


}


正在回答

2 回答

楼上的回答 就很皮

只说了一半。

马老师来告诉你具体原因:因为啊,Object类的toString()方法,就是返回一个地址啊。你直接调用toString()方法,是调用Object类的toString()方法。因此我们需要在自己定义的类中,重写toString()方法。来达到返回字符串的目的。

0 回复 有任何疑惑可以回复我~

s首先,如果是System.out.println() 输出对象,java会默认调用一个对象的toString()

所以 dog 和dog.toString() 效果是一样的

但是,可能你理解有偏差!

所谓重写,是在继承的基础上,去改写父类的方法

如果直接调用dog.toString() 方法,那么使用的是父类的继承来的方法

一定是要理解重写的意思,首先是要由继承,然后重写父类方法!

System.out.println(dog.tostring()); 这个外部调用,只是调用了父类方法而已,因为你在dog类中没有重写从

Object 类继承的toString() 方法

4 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥这样写还是输出的是地址?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信