如何理解黎克特制替換原則?

2021-07-26 15:30:48 字數 527 閱讀 3664

liskov替換原則核心就是子類能完全替換它的基類。

看上去這個應該與生俱來的能力。物件導向的核心多型,不就是靠這一條實現的。或許從沒有遇到的過子類改寫基類的情況。程式世界可能出現這種情況,而且在不經意之間出現這種情況。比如「鳥」是基類,這個基類有乙個「飛翔」的行為。當「鴕鳥」繼承了「鳥」,這就會引起麻煩,覆寫基類「飛翔」的行為吧,這樣就不再符合黎克特制替換原則。「鴕鳥」是不能替換它的基類了。再舉個例子,「長方形」是基類,「正方形」是一種特殊的長方形,理所應當「正方形」是「長方形」的子類。「長方形」有單獨改變長或寬的行為,對於「正方形」來說,就得改寫這兩個行為以保證長等於寬。這樣就違背了黎克特制替換原則。當長方形調整了長,又調整寬,在算面積的時候。正方形這個子類就會出錯。

在我看了,黎克特制替換原則是不容易違背的。這是oo的基礎。黎克特制替換原則如果不存在了,oo何在。

solid 五項原則介紹: 原

如何理解單一職責原則? 原

如何理解介面隔離原則? 原

如何理解開放封閉原則?

原如何理解黎克特制替換原則?

原如何理解依賴倒置原則?

黎克特制替換原則的理解

一直都搞不明白黎克特制替換原則的後面兩條,到今天才知道原來是自己沒有認真思考。閒話不說,記錄下來吧以後方便檢視。黎克特制替換原則的主要作用就是規範繼承時子類的一些書寫規則。其主要目的就是保持父類方法不被覆蓋,試想一下,如果你想覆蓋父類的方法,幹嘛還要繼承他,直接重新寫乙個類不就完了。黎克特制替換原則...

黎克特制替換原則

黎克特制替換原則 黎克特制代換原則 liskov substitution principle lsp 物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍...

黎克特制替換原則

黎克特制替換原則更多的說的是子類與父類的關係的一種原則,子類必須實現父類的所有方法,所有能夠放子類的地方一定能夠放父類。但是這裡的話,我們講有的時候在我們的業務中,有的子類肯定是有個性化的特徵的,比如真槍和玩具槍,真槍能射出子彈,但是玩具槍就不能,那麼這個時候,我們或者通過抽象類,通過抽象類是我們可...