設計模式 (黎克特制替換原則)

2021-09-27 07:57:39 字數 1388 閱讀 7745

黎克特制替換原則的引入:

是針對物件導向中的繼承的缺點:

乙個原則首先先介紹下它的定義

黎克特制替換原則為繼承定義了規範,下面我用書中看到的例子來說

1.子類必須完全實現父類的方法

//首先先定義乙個槍的抽象類

public abstract class abstractgun

//實現類的定義,不同的槍枝進行實現其作用

public class handgun extends abstractgun

}public class rifle extends abstractgun

}public class machinegun extends abstractgun()

}

//槍的實體類模型建完,需要有人去使用,下面建立士兵的實現類

public class soldier

public void killenemy()

}

//實現類都已建立,下面建立測試類進行模擬

public class test

}

執行結果:使***

2.子類可以有自己的個性

//機槍類是乙個子類,機槍中有狙擊步槍,拿我國的w03舉例

public class w03 extends rifle

public void shoot()

}

//定義狙擊手的實現類

public class snipper

}

//創造出乙個狙擊手的實體類

public class client

}

黎克特制替換原則中子類出現的地方父類未必出現

3.覆蓋或實現父類的方法時輸入引數可以被放大

//先定義乙個父類

public class father}/*

* 將hashmap轉化成collection集合

*/

//現在定義乙個子類

public class son extends father}/*

* 與父類方法名相同引數型別不同是過載

*/

//場景類的設定

public class client

public static void main(string args)

}

4.覆寫或實現父類的方法時輸出結果可以被縮小

如果是覆寫父類和子類的同名方法輸入引數是相同的;而過載要求方法輸入的引數型別或數量是不同的

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

設計模式 黎克特制替換原則 物件導向的語言繼承必不可少的,有如下優點 共享,減少建立類的工作量 提高 的重用性 提高 的可擴充套件性 提高 的可擴充套件性 提高產品 的開放性 繼承侵入性 只要繼承,必須擁有父類的內容 降低 的靈活性,子類必須擁有父類的屬性和方法 增強耦合性。黎克特制替換原則,為繼承...

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

設計模式 黎克特制替換原則 oo 中的繼承性的思考和說明 繼承包含這樣一層含義 父類中凡是已經實現好的方法,實際上是在設定規範和契約,雖然它不強制要求所有的子類必須遵循這些契約,但是如果子類對這些已經實現的方法任意修改,就會對整個繼承體系造成破壞。繼承在給程式設計帶來便利的同時,也帶來了弊端。比如使...

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

1 繼承包含這樣乙個含義 父類中凡是已經實現好的方法,實際上是在設定規範和契約,雖然他不強制要求所有子類遵循這些契約,但如果子類對這些已經實現的方法任意修改,就會對整個繼承體系造成破壞。2 繼承給程式帶來便利與帶來了弊端。比如繼承會給程式帶來侵入性,程式可移植性降低,增加物件間的耦合度。如果這個類被...