[請益] class繼承問題

看板PHP作者 (<><魚仔<>< 薰~)時間12年前 (2013/07/11 16:00), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/9 (看更多)
我目前的疑惑是這樣: class grandfather { //祖父 public function grandfather() { // } public function get_data() { echo 'hello'; } } class father extends grandfather { //爸爸 public function father() { // } } class child extends father{ //小孩 public function child() { // } public function test() { parent::get_data(); } } $a = new child(); $a->test(); 我在 child 的 test() 中呼叫 father 的 get_data(), 但 father 沒有,所以我想應該 會跳錯誤出來,可是它的結果卻是再往上去找到 grandfather 的 get_data(),所以是採用 無限上綱的方式? 往上一直找到有為止? 這個樣子的話那如果中間是繼承了好幾層然後又有人去覆寫,這樣不就會造成我想的 get_data()不見得一定就是我想的那個,可能中間有人做了其它修改,這樣不就會大亂了嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.39.133.25

07/11 16:09, , 1F
先理解"繼承"是什麼意思,哪來的無限上綱@@
07/11 16:09, 1F

07/11 16:10, , 2F
調用函式前指名正確的類別不就不會有問題了? 怎麼亂法?
07/11 16:10, 2F

07/11 16:21, , 3F
你每一層沒去return parent::function() 就只會找被
07/11 16:21, 3F

07/11 16:22, , 4F
覆蓋的
07/11 16:22, 4F

07/11 23:27, , 5F
說往上找是不對的。簡單來說……這叫遺傳........
07/11 23:27, 5F

07/15 21:35, , 6F
很簡單啊,用final來修飾就好了,這樣就不會被重寫了
07/15 21:35, 6F
文章代碼(AID): #1HtcO86P (PHP)
討論串 (同標題文章)
文章代碼(AID): #1HtcO86P (PHP)