Re: [問題] 關於繼承

看板java作者 (C++)時間19年前 (2006/03/24 19:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
基本概念: 繼承的時候 會繼承父類別的一切(非static)的成員 包含那些private屬性的成員(只是你不能用 但還是存在) 所以其實你的子類別裡面已經有了那個成員 若此時你再次宣告同名稱的成員 會產生遮蔽效應(shadow) 不是取代(replace) 你的例子裡 父類別的method 傳回的是父類別的成員 注意 就只是Car的OILSIZE 就算你在子類別中宣告了另一個同名變數OILSIZE 兩個OILSIZE其實也是不同的東西 所以期待method會找到你"心目中"正確的變數 其實不會 也不可能 因為兩個OILSIZE根本是不同變數 只是名稱相同罷了 :) 所以 是呀 virtual一下吧~ 不過其實看你的設計 這些double變數應該是常數 constant 吧?(全大寫 :P?) 這樣的話 你可以設為static 比較合乎設計理念 如果不是constant的話 這種設計就怪怪的了 如果不是constant 每個實體都有一份自己的OILSIZE 應該使用protected繼承 子類別可以直接修改 或是父類別提供getter/setter以供存取 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.217.14
文章代碼(AID): #148zDzr6 (java)
文章代碼(AID): #148zDzr6 (java)