看板 PHP 關於我們 聯絡資訊
※ 引述《htl74421 (<><魚仔<>< 薰~)》之銘言: : 感謝回答 ^^ : 目前我碰到的情況是原程式只下了一句 parent:get_data() ,然後我往上找了四代才找 : 到 get_data() 在哪裡, 原本我以為只是到上一代去找而已... : 這樣我就想到這中間如果有人不曉得底下有人去找原來的 get_data() 而又創了一個 : 那到了最下面的人不就慘了? : 所以說是不是要修正寫法改指定是哪一代的 get_data() 這樣比較保險? : 謝謝 ^^" 這不對。 任何要引用繼承你提供的類別的人。 他所遵照的就是你做為繼承類別的功能。 而不應該去做往上找的動作。 在你未做任何說明的情形下,最終繼承就是以你為準。 另外,任何人在設計繼承時。 他允許你繼承後修改方法的內容。 但不應當允許任何人去修改被繼承體的內容。 舉例來說 a的get_data()有缺失。 你要做的不是去修改a的get_data() 而是繼承a的b去修改get_data()的內容。 然後讓原本繼承a的c,改繼承b。 除了原設計者之外都不應該隨便任意修改任何被繼承體。 另一種情形就是說。 c、d、e繼承了a功能正常 但是f、g發現了a的功能性不足 你要做的不是去改a 而是讓b繼承a之後,由f、g再去繼承b,並修改b做為你要的功能。 這樣子c、d、e就不會因為你改到b而發生不可預期的異常。 a ←c、d、e ↑ b ←f、g 完全偷懶到不行的UML圖 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.42.153
htl74421:感謝大大,我懂了...<(_ _)> 07/12 15:53