黎克特制替換原則

2021-10-18 20:22:55 字數 839 閱讀 2097

一、黎克特制替換原則的定義

1、黎克特制替換原則通俗的來講就是:子類可以擴充套件父類的功能,但不能改變父類原有的功能。

2、黎克特制代換原則告訴我們,在軟體中將乙個基類物件替換成它的子類物件,程式將不會產生任何錯誤和異常,反過來則不成立,如果乙個軟體實體使用的是乙個子類物件的話,那麼它不一定能夠使用基類物件。

3、黎克特制代換原則是實現開閉原則的重要方式之一,由於使用基類物件的地方都可以使用子類物件,因此在程式中盡量使用基類型別來對物件進行定義,而在執行時再確定其子類型別,用子類物件來替換父類物件。

二、黎克特制替換原則包含的含義

1、子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法

在我們做系統設計時,經常會設計介面或抽象類,然後由子類來實現抽象方法,這裡

使用的其實就是黎克特制替換原則。子類可以實現父類的抽象方法很好理解,事實上,子

類也必須完全實現父類的抽象方法,哪怕寫乙個空方法,否則會編譯報錯。

黎克特制替換原則的關鍵點在於不能覆蓋父類的非抽象方法。父類中凡是已經實現好的方

法,實際上是在設定一系列的規範和契約,雖然它不強制要求所有的子類必須遵從這

些規範,但是如果子類對這些非抽象方法任意修改,就會對整個繼承體系造成破壞。

而黎克特制替換原則就是表達了這一層含義。

2、子類中可以增加自己特有的方法

在繼承父類屬性和方法的同時,每個子類也都可以有自己的個性,在父類的基礎上擴

展自己的功能。前面其實已經提到,當功能擴充套件時,子類盡量不要重寫父類的方法,

而是另寫乙個方法。

3、當子類覆蓋或實現父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入引數更寬鬆。

黎克特制替換原則

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

黎克特制替換原則

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

黎克特制替換原則

黎克特制替換原則,主要是乙個關於繼承的規範原則,它要求我們在軟體中寫繼承關係時,所有引用父類的地方必須能夠 透 明地使用其子類物件 子類可以實現父類所提供的抽象 方法,但不要去重寫父類已經實現的方法,或者過載父類的 構 造。要維護繼承的傳遞性,當然很多地方為這個原則打了個 比喻為 龍生龍,鳳生鳳,老...