如果對乙個型別為s的物件o1,都有型別為t的物件o2,使得以s定義的所有程式p 中所有的物件o1都替換成o2是,程式p的行為沒有發生變化,那麼型別t是型別s的子型別。
按照黎克特制替換原則,當多個類之間存在繼承關係時,通常應該使用父類或介面來指向子類的物件,這樣有利於提高系統的可擴充套件性。
我們都知道,在物件導向的語言中,繼承是必不可少的,優秀的語言機制,它的主要優點如下:
1、**共享,減少建立類的工作量,每個子類都擁有父類的方法和屬性。
2、提高**的可重用性。
3、提高產品和專案的開放性。
但它也有相應的缺點:
1、繼承是入侵式的。只要繼承,就必須擁有父類的所有屬性和方法。
2、降低**的靈活性。子類必須擁有父類的屬性和方法。
3、增強了耦合性。當父類的常量、變數和方法修改是,必須考慮子類的修改。
這種修改可能造成大片的**需要重構。
所以黎克特制替換原則就是解決子類繼承的問題的。
六大原則之黎克特制替換
package com.study public class liskov 類 a classa class bextends apublic intfunc2 int a,int b 問題說明 上面的 出現了意外情況,原因就是類 b 無意中重寫了父類的方法,造成原有功能出現錯誤。在實際程式設計中,...
物件導向六大原則之黎克特制替換原則
我們知道,物件導向的語言的三大特點是繼承,封裝,多型,黎克特制替換原則就是依賴於繼承,多型這兩大特性。黎克特制替換原則簡單來說就是,所有引用基類的地方必須能透明地使用其子類的物件。通俗點講,只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任何錯誤或異常,使用者可能根本就不需要知道是父類還...
設計模式六大原則 黎克特制替換原則
設計模式總覽 黎克特制代換原則 liskov substitution principle lsp 物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現 並且完全察覺不出父類物件和子類物件的區別。黎克特制代換原則是乙個規範性原則,它是繼承復用的基石。只有按照這個...