看板 java 關於我們 聯絡資訊
※ 引述《tkcn (小安)》之銘言: : ※ 引述《Robert0512 (天天衝浪三國無雙)》之銘言: : : 但我用java做實驗 : : 同樣的繼承順序 : : 解購時卻是a->b->c : : 很疑惑 : : 這是對的嘛? : 實驗做錯囉, : 因為 method overriding 的關係, : gc 對打算回收的物件呼叫 finalize 時, : 只會呼叫到 C.finalize()。 : 我猜,之所以你會看到 a, b, c 的順序, : 大概是你把 C.finalize() 寫成這樣子吧, : public void finalize(){ : super.finalize(); : // 以下略 : } : XD 喔喔 我是把每個的finalize()都寫不同的 譬如C就是 public void finalize(){ System.out.printly("this is C"); } 這樣會有問題出現嗎? -- 握緊手 裡面什麼都沒有 鬆開手 你擁有的是一切 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 209.2.50.98
tkcn:這樣的話, 我認為 gc 應該只會印出 C 才對? 03/15 18:57
Robert0512:沒錯~t大說對了 只印出c來而已 XD 03/15 19:15
superlubu:那... 你第一篇的疑問是怎麼來的 ( ̄□ ̄|||)a 03/15 19:18
就如同t大說的 我之前寫的super.finalize()我忘記註解起來XD 難怪一直覺得怪怪的 囧 ※ 編輯: Robert0512 來自: 209.2.50.98 (03/15 19:23)