dan*_*car 2 oop solid-principles
"子类型必须可替代其基类型"
假设我已经有了Bird类,并且:
class Parrot extends Bird {
public function Talk() {
echo 'Talk';
}
}
Run Code Online (Sandbox Code Playgroud)
鸟不能说话,所以我无法用鸟取代鹦鹉.
这只是一个基本的例子,但通常扩展类可以比基类做得更多.我错过了什么?
ama*_*loy 11
关键是鹦鹉应该在各方面都像鸟一样,所以有一个有处理鸟类的计划的人不会对他们遇到的鹦鹉感到惊讶.如果鹦鹉碰巧能够说话,那也没关系,因为他们的计划不涉及让鸟儿说话.
例如,也许他们只是呼唤$bird->fly()他们得到的每只鸟 - 鹦鹉说话的能力不会破坏这种活动,所以他们的算法仍然有效.但是如果你发明了一种无法飞行的鸟(比如说是鸵鸟),那么你就违反了这个原则,它们的一般鸟类处理算法不再适用于各种鸟类.
| 归档时间: |
|
| 查看次数: |
544 次 |
| 最近记录: |