作者tkdmaf (皮皮快跑)
看板PHP
标题Re: [请益] class继承问题
时间Fri Jul 12 12:12:06 2013
※ 引述《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
1F:推 htl74421:感谢大大,我懂了...<(_ _)> 07/12 15:53