package com.imoic;
public class Initail {
/**
*
*/
public static void main(String[] args) {
Dog dog=new Dog();
System.out.println(dog.tostring());
}
为什么要在dog那个方法里面去写tostring,这样写不是一样可以吗?
}
楼上的回答 就很皮
只说了一半。
马老师来告诉你具体原因:因为啊,Object类的toString()方法,就是返回一个地址啊。你直接调用toString()方法,是调用Object类的toString()方法。因此我们需要在自己定义的类中,重写toString()方法。来达到返回字符串的目的。
s首先,如果是System.out.println() 输出对象,java会默认调用一个对象的toString()
所以 dog 和dog.toString() 效果是一样的
但是,可能你理解有偏差!
所谓重写,是在继承的基础上,去改写父类的方法
如果直接调用dog.toString() 方法,那么使用的是父类的继承来的方法
一定是要理解重写的意思,首先是要由继承,然后重写父类方法!
System.out.println(dog.tostring()); 这个外部调用,只是调用了父类方法而已,因为你在dog类中没有重写从
Object 类继承的toString() 方法