六大原則之黎克特制替換

2021-10-25 16:01:57 字數 923 閱讀 6893

package com.study;

public

class

liskov

}//類 a

classa}

class

bextends

apublic

intfunc2

(int a,

int b)

}

問題說明:上面的**出現了意外情況,原因就是類 b 無意中重寫了父類的方法,造成原有功能出現錯誤。在實際程式設計中,我們常常會通過重寫父類的方法完成新的功能,這樣寫起來雖然簡單,但整個繼承體系的復用性會比較差。特別是執行多型比較頻繁的時候

通用做法:

原來的父類和子類都繼承乙個更通俗的基類,原有的繼承關係去掉,採用依賴,聚合,組合等關係代替

解決方案:

}//建立乙個更加基礎的基類

class

base

//類 a

class

aextends

base

}class

bextends

base

public

intfunc2

(int a,

int b)

public

intfunc3

(int a,

int b)

}

六大原則之黎克特制替換原則

如果對乙個型別為s的物件o1,都有型別為t的物件o2,使得以s定義的所有程式p 中所有的物件o1都替換成o2是,程式p的行為沒有發生變化,那麼型別t是型別s的子型別。按照黎克特制替換原則,當多個類之間存在繼承關係時,通常應該使用父類或介面來指向子類的物件,這樣有利於提高系統的可擴充套件性。我們都知道...

物件導向六大原則之黎克特制替換原則

我們知道,物件導向的語言的三大特點是繼承,封裝,多型,黎克特制替換原則就是依賴於繼承,多型這兩大特性。黎克特制替換原則簡單來說就是,所有引用基類的地方必須能透明地使用其子類的物件。通俗點講,只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任何錯誤或異常,使用者可能根本就不需要知道是父類還...

設計模式六大原則 黎克特制替換原則

設計模式總覽 黎克特制代換原則 liskov substitution principle lsp 物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現 並且完全察覺不出父類物件和子類物件的區別。黎克特制代換原則是乙個規範性原則,它是繼承復用的基石。只有按照這個...