為啥這樣寫還是輸出的是地址?
package com.imoic;
public class Initail {
/**
*?
*/
public static void main(String[] args) {
Dog dog=new Dog();
System.out.println(dog.tostring());
}
為什么要在dog那個方法里面去寫tostring,這樣寫不是一樣可以嗎?
}
package com.imoic;
public class Initail {
/**
*?
*/
public static void main(String[] args) {
Dog dog=new Dog();
System.out.println(dog.tostring());
}
為什么要在dog那個方法里面去寫tostring,這樣寫不是一樣可以嗎?
}
2016-11-08
舉報
2017-04-29
樓上的回答 就很皮
只說了一半。
馬老師來告訴你具體原因:因為啊,Object類的toString()方法,就是返回一個地址啊。你直接調用toString()方法,是調用Object類的toString()方法。因此我們需要在自己定義的類中,重寫toString()方法。來達到返回字符串的目的。
2016-11-08
s首先,如果是System.out.println() 輸出對象,java會默認調用一個對象的toString()
所以 dog 和dog.toString() 效果是一樣的
但是,可能你理解有偏差!
所謂重寫,是在繼承的基礎上,去改寫父類的方法
如果直接調用dog.toString() 方法,那么使用的是父類的繼承來的方法
一定是要理解重寫的意思,首先是要由繼承,然后重寫父類方法!
System.out.println(dog.tostring()); 這個外部調用,只是調用了父類方法而已,因為你在dog類中沒有重寫從
Object 類繼承的toString() 方法