2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
你可以看一下源碼,在eclipse上,對(duì)準(zhǔn)toString(),ctrl+鼠標(biāo)左鍵,即可進(jìn)入源碼,看看toString的實(shí)現(xiàn),
源碼如下
return getClass().getName() + "@" + Integer.toHexString(hashCode());
“我產(chǎn)生的疑問是 第一個(gè)類打印的是其父類Object的地址嗎?”
錯(cuò)??磥?lái)你對(duì)java還是不熟悉。Object類是所有類的父類。而你給出的兩個(gè)類,其中一個(gè)重寫了toString()方法,但是相當(dāng)于沒重寫。因?yàn)镺bject類是所有類的父類,所以也是Test的父類。
如果你的類Test沒重寫toString的方法,則調(diào)用你父類(即Object)的toString方法。
如果你的類Test重寫了toString方法,則調(diào)用重寫的那個(gè)方法。
但是為什么說(shuō)你重寫了之后相當(dāng)于沒重寫呢?因?yàn)槟阒貙懙姆椒ㄟ€是調(diào)用了父類的toString方法!所以效果是一樣的。

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
類只是創(chuàng)建對(duì)象的模板,不管怎么繼承創(chuàng)建的對(duì)象只有一個(gè)。
toString返回的@后面是對(duì)象的hashcode,內(nèi)容(值)相同的對(duì)象hashcode相同。
添加回答
舉報(bào)