【设计模式】里氏替换原则
生活随笔
收集整理的這篇文章主要介紹了
【设计模式】里氏替换原则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
里氏替換原則
OO(Object Oriented,面向對象程式設計)中的繼承性的思考和說明
里氏替換原則
違反里氏替換原則
class IPhone{public void sendEmail() {System.out.println("QQ發郵件");} }class XiaoMi extends IPhone{// 不小心重寫了父類中的方法public void sendEmail() {System.out.println("136發郵件");}public void call() {System.out.println("打電話");} } public class LiskovSubstitutionPrinciple {public static void main(String[] args) {IPhone iPhone = new IPhone();iPhone.sendEmail();XiaoMi xiaoMi = new XiaoMi();xiaoMi.sendEmail(); //目的是使用QQ發郵件,實際是136發郵件xiaoMi.call();} }修改后符合里氏替換原則
通用的做法是∶原來的父類和子類都繼承一個更通俗的基類,原有的繼承關系去掉,采用依賴,聚合,組合等關系代替
class MyPhone{// 基類 }class IPhone extends MyPhone{public void sendEmail() {System.out.println("QQ發郵件");} }class XiaoMi extends MyPhone{public void sendEmail() {System.out.println("136發郵件");}public void call() {System.out.println("打電話");} } public class LiskovSubstitutionPrinciple {public static void main(String[] args) {IPhone iPhone = new IPhone();iPhone.sendEmail();XiaoMi xiaoMi = new XiaoMi();xiaoMi.sendEmail();xiaoMi.call();} }總結
以上是生活随笔為你收集整理的【设计模式】里氏替换原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【设计模式】依赖倒转原则
- 下一篇: asp.net ajax控件工具集 Au