|奧遠(yuǎn)科技是專注于信息化建設(shè)與互聯(lián)網(wǎng)產(chǎn)品開發(fā)的高新科技企業(yè),主要服務(wù)于百?gòu)?qiáng)企業(yè)、上市公司、大型集團(tuán)網(wǎng)站建設(shè)。承接大型電商網(wǎng)站、復(fù)雜功能型網(wǎng)站、APP、微信、小程序,oa辦公管理系統(tǒng),ERP管理系統(tǒng)開發(fā)。為客戶提供一站式網(wǎng)絡(luò)營(yíng)銷解決方案,全國(guó)統(tǒng)一客服熱線:4000-880-989。 "> |null ">

亚洲一区二区在线观看你懂-中文字幕黄色在线观看-黄色av88小说在线观看-蜜臀av一区二区三区精品人妻

技術(shù)中心

這里象征著我們的態(tài)度和能力

設(shè)計(jì)模式6大原則:里氏置換原則
作者:中國(guó)IT實(shí)驗(yàn)室    來(lái)源:中國(guó)IT實(shí)驗(yàn)室    發(fā)布時(shí)間:2012-03-12      瀏覽次數(shù):9606
分享到:
歡迎進(jìn)入Java社區(qū)論壇,與200萬(wàn)技術(shù)人員互動(dòng)交流 >>進(jìn)入

  里氏置換原則(Liskov Substitution Principle),簡(jiǎn)稱LSP

  定義:

  Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.

  所有引用基類的地方必須能夠透明的使用其子類對(duì)象。

  也就是說(shuō),只要父類出現(xiàn)的地方子類就能夠出現(xiàn),而且替換為子類不會(huì)產(chǎn)生任何錯(cuò)誤或異常。但是反過(guò)來(lái),子類出現(xiàn)的地方,替換為父類就可能出現(xiàn)問(wèn)題了。

  這個(gè)原則是為良好的繼承定義一個(gè)規(guī)范,簡(jiǎn)單的講,有4層含義:

  一、子類必須完全實(shí)現(xiàn)父類的方法

  定義一個(gè)抽象類

  public abstract class ViewPoint { //去麗江旅游public abstract void where();}下面兩個(gè)類是實(shí)現(xiàn)這個(gè)抽象類

  public class Lijiang extends ViewPoint {

  @Override public void where() { System.out.println("歡迎來(lái)到麗江……");}

  } public class Zhangjiajie extends ViewPoint {

  @Override public void where() { System.out.println("歡迎來(lái)到張家界……");}

  }人物是涂涂,在里面設(shè)置類類型來(lái)傳遞參數(shù)。此時(shí)涂涂要去的旅游景點(diǎn)還是抽象的

  public class Tutu { //定義要旅游的景點(diǎn)private ViewPoint viewpoint;//涂涂要去的景點(diǎn)public void setViewPoint(ViewPoint viewpoint)

  { this.viewpoint = viewpoint;}

  public void travelTo()

  { System.out.println("涂涂要去旅游了");viewpoint.where();}場(chǎng)景類。設(shè)置具體要去的景點(diǎn)

  public class Sence { public static void main(String args[])

  { Tutu tutu = new Tutu();//設(shè)置要去的旅游景點(diǎn)tutu.setViewPoint(new Lijiang());tutu.travelTo();}運(yùn)行結(jié)果:

  涂涂要去旅游了

  歡迎來(lái)到麗江……

  二、子類可以有自己的特性

  也就是說(shuō)在類的子類上,可以定義其他的方法或?qū)傩?

  三、覆蓋或者實(shí)現(xiàn)父類的方法時(shí)輸入?yún)?shù)可以被放大

  父類能夠存在的地方,子類就能存在,并且不會(huì)對(duì)運(yùn)行結(jié)果有變動(dòng)。反之則不行。

  父類,say()里面的參數(shù)是HashMap類型,是Map類型的子類型。(因?yàn)樽宇惖姆秶鷳?yīng)該比父類大)

  import java.util.Collection;import java.util.HashMap;

  public class Father { public Collection say(HashMap map)

  { System.out.println("父類被執(zhí)行……");return map.values();}子類,say()里面的參數(shù)變成了Map類型,Map范圍比HashMap類型大,符合LSP原則。注意這里的say不是覆寫父類的say,因?yàn)閰?shù)類型不同。而是重載。

  import java.util.Collection;import java.util.Map;

  /* * 子類繼承了父類的所有屬性*/ public class Son extends Father { //方法輸入?yún)?shù)類型public Collection say(Map map)

  { System.out.println("子類被執(zhí)行……");return map.values();}場(chǎng)景類

  import java.util.HashMap;

  public class Home { public static void main(String args[])

  { invoke();}

  public static void invoke()

  { //父類存在的地方,子類就應(yīng)該能夠存在//Father f = new Father();Son s = new Son();HashMap map = new HashMap();//f.say(map);s.say(map);}無(wú)論是用父類還是子類調(diào)用say方法,得到的結(jié)果都是

  父類被執(zhí)行……

  但是,如果將上面Father里的say參數(shù)改為Map,子類Son里的say參數(shù)改為HashMap,得到的結(jié)果就變成了

  f.say(map)結(jié)果:父類被執(zhí)行……

  s.say(map)結(jié)果: 子類被執(zhí)行……

  這樣會(huì)造成邏輯混亂。所以子類中方法的前置條件必須與父類中被覆寫的前置條件相同或者更寬。

  四、覆寫或者實(shí)現(xiàn)父類的方法時(shí)輸出結(jié)果可以被縮小

  其實(shí)與上面的類似,也就是父類能出現(xiàn)的地方子類就可以出現(xiàn),而且替換為子類不會(huì)產(chǎn)生任何錯(cuò)誤或者異常,使用者也無(wú)需知道是父類還是子類。但是反過(guò)來(lái)就不行了,有子類出現(xiàn)的地方,父類未必就適應(yīng)。(畢竟子類的范圍要>=父類的范圍)

4000-880-989
(24小時(shí)熱線)
聯(lián)系客服
微信公眾號(hào)

官方公眾號(hào)

小程序

?2008-2022 CORPORATION ALL Rights Reserved. 昆明奧遠(yuǎn)科技有限公司版權(quán)所有 滇ICP備09003328號(hào)-1 滇公網(wǎng)安備 53011102000818號(hào) 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證號(hào):滇B2-20110045
昆明那家網(wǎng)絡(luò)公司好,新媒體運(yùn)營(yíng),網(wǎng)站優(yōu)化,網(wǎng)絡(luò)推廣,網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站推廣,云南網(wǎng)站公司,昆明新媒體公司,云南網(wǎng)紅主播,昆明SEO公司,昆明網(wǎng)站建設(shè),昆明網(wǎng)絡(luò)推廣,昆明網(wǎng)站優(yōu)化,昆明網(wǎng)站推廣,紅河網(wǎng)站建設(shè),大理網(wǎng)絡(luò)公司,曲靖網(wǎng)絡(luò)公司,麗江網(wǎng)站設(shè)計(jì),昭通網(wǎng)絡(luò)公司,保山大數(shù)據(jù)服務(wù),智慧高速建設(shè),智慧校園服務(wù),云南IDC服務(wù)商,網(wǎng)絡(luò)安全測(cè)評(píng),等保測(cè)評(píng),網(wǎng)站關(guān)鍵詞排名優(yōu)化服務(wù),服務(wù)客戶盡超2000余家,一切盡在奧遠(yuǎn)科技,服務(wù)電話:13888956730
丁香社区五月在线视频久| 八插8插黄色视频| 国产乱色国产精品免费播放| 男人操女人下面国产剧情| 天天免费的无码AV| 国产亚洲一区二区手机在线观看| 藏经阁91福利私人试看| 一区二区国产精品免费视频| 怎么样操女人的逼亚洲Av黄片段 | 大胸瑟瑟黑丝午夜| 国产裸体视频BBBBB| 97青青草免费在线观看| 夜夜嗨av少妇一二三区| 色熟妇人妻久久中文字幕| 九九在线精品亚洲国产| 国产午夜精品美女视频露脸| 久久久久精品无码专区喝奶| 91精品国产综合久久久蜜 | 18岁美女破处在线观看| 被几个大屌老外轮操| 男女操逼视频嫩嫩| 男人操女人黄片黄色| 久久综合日韩亚洲精品色| 美女主播被操流水| 无码中文字幕免费一区二区三区| 西西大尺度无码免费视频| 几巴怪物操逼视频| 999精品免费视频| 美女骚逼被操出白浆| 国产精品亚洲综合av| 精品久久av免费一区二区三区| 国产免费无码一区二区视频无码| 欧美日韩综合在线一区| 日本免费一区二区在线| 日韩av一区二区高清不卡| 亚洲日韩不卡一区二区三区| 操女人逼逼骚逼逼| 美女骚逼黄色18禁| 精品日韩欧美精品日韩| 中文字幕在线观一二三区| 国产A级黄片下载|