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