黎克特制替換原則的引入:
是針對物件導向中的繼承的缺點:
乙個原則首先先介紹下它的定義
黎克特制替換原則為繼承定義了規範,下面我用書中看到的例子來說
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 繼承給程式帶來便利與帶來了弊端。比如繼承會給程式帶來侵入性,程式可移植性降低,增加物件間的耦合度。如果這個類被...