您好,登錄后才能下訂單哦!
這篇文章主要講解了“java里氏替換原則有哪些優缺點”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java里氏替換原則有哪些優缺點”吧!
里氏替換原則(LSP),The Liskov Substitution Principle
定義
所有引用基類的地方必須能透明地引用其子類的對象,即子類可以拓展父類的功能,但不能修改父類已有的功能。
也就是說在父類出現的地方子類也可以出現,并且替換為子類也不會報錯,引用者根本不需要知道引用的是父類還是子類,但是反過來就行不通了,子類出現的地方父類就不一定能出現并代替子類。
里氏替換原則的特點:
1、子類可以拓展父類的功能,但不能修改父類已有的功能,如果修改了父類已有的功能,可能導致父類定義的功能在子類覆蓋后不適用。
2、重載父類的方法時,子類的方法形參應該比父類更寬松。
3、實現父類的抽象方法時,子類的方法輸出結果應該比父類更加嚴格。
4、子類可以有自己獨特的私有方法,但是需要注意的是,如果子類不能完全實現父類的方法,或者父類的某一些方法在子類中已經不適用,這種情況則建議斷開父子關系,使用組合等方式代替繼承出現。
里氏替換原則的優缺點:
1、合理得用類的繼承關系,提高了代碼的復用性,但也增強了類與類之間的耦合性。
2、通過建立抽象,運行過程中具體實現取代抽象,保證了系統的可拓展性。
3、只要繼承父類就擁有父類的全部屬性和方法,這樣減少了代碼重復創建量共享了代碼但也約束了子類的行為,降低了系統靈活性。
我們平時開發中可能沒考慮這么多,亂覆蓋父類的方法,沒有多少聯系的繼承等很多打破了里氏替換的原則,這樣不顧后果的后果就是我們寫的程序存在著潛在的漏洞,而且出問題的機率也會顯著提升。
感謝各位的閱讀,以上就是“java里氏替換原則有哪些優缺點”的內容了,經過本文的學習后,相信大家對java里氏替換原則有哪些優缺點這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。