Java語言與面向?qū)ο蟪绦蛟O(shè)計第二課件第五章_第1頁
Java語言與面向?qū)ο蟪绦蛟O(shè)計第二課件第五章_第2頁
Java語言與面向?qū)ο蟪绦蛟O(shè)計第二課件第五章_第3頁
Java語言與面向?qū)ο蟪绦蛟O(shè)計第二課件第五章_第4頁
Java語言與面向?qū)ο蟪绦蛟O(shè)計第二課件第五章_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第5章繼承與多態(tài)主要內(nèi)容:繼承多態(tài)接口和包繼承繼承:子類利用父類中定義的方法和變量就像它們屬于子類本身一樣;(包括父類的私有屬性、私有方法,但不可見);單重繼承:一個類只能有一個父類(Java、C#、VC++);多重繼承:一個類可以有多個父類(標(biāo)準(zhǔn)C++);電話卡域:剩余金額方法:撥打電話查詢金額無卡號電話卡域:電話機型號方法:獲得電話機型號有卡號電話卡域:卡號,密碼,接入號碼,接通方法:登錄交換機IP卡域:有效時間方法:撥打電話200卡域:附加費用方法:撥打電話修改密碼電話IC卡方法:撥打電話電話磁卡域:使用地域方法:撥打電話繼承繼承繼承繼承繼承繼承圖5-1各種電話卡類及其間繼承關(guān)系繼承的優(yōu)點、目的優(yōu)點:更有效地組織程序結(jié)構(gòu),明確類間關(guān)系;目的:使程序結(jié)構(gòu)清晰,提高開發(fā)效率,降低編碼和維護工作量。派生子類《例5-1》PhoneCard類及其派生子類abstractclassPhoneCardabstractclassNone_Number_PhoneCard

extends

PnoneCardabstractclassNumber_PhoneCard

extendsPnoneCard問題:第二行、第三行的類為什么是抽象類,能否去掉abstract關(guān)鍵字?域的繼承子類繼承(擁用)父類的所有非私有(P91~92頁各類擁有的域);電話卡域:剩余金額方法:撥打電話查詢金額無卡號電話卡域:電話機型號方法:獲得電話機型號有卡號電話卡域:卡號,密碼,接入號碼,接通方法:登錄交換機IP卡域:有效時間方法:撥打電話200卡域:附加費用方法:撥打電話修改密碼電話IC卡方法:撥打電話電話磁卡域:使用地域方法:撥打電話繼承繼承繼承繼承繼承繼承域的隱藏子類重新定義一個從父類繼承來的域變量(可以具有不同類型),稱為域的隱藏(指新定義的域變量隱藏了父類的同名變量)。舉例:《例5-2》的簡化版;abstractclassA{doublem_a;abstractdoublesub();doubleget(){returnm_a;} }classBextendsA{doublem_a;doublesub(){m_a-=1;returnm_a;}doublesuper_sub(){super.m_a-=1;returnsuper.m_a;} }publicclassApplication1{publicstaticvoidmain(String[]args){Bb=newB();b.m_a=100;System.out.println(b.get());System.out.println(b.sub());System.out.println(b.super_sub());} }輸出為: 0 99 -1;b.m_a=100; b.get()b.sub()b.super_sub()問題:以下程序訪問的是父類還是子類?《要點》:1)被隱藏的父類域在子類對象中仍占有獨立的內(nèi)存空間;2)子類可通過super

關(guān)鍵字或繼承自父類的方法訪問或處理繼承自父類的域。方法的繼承與覆蓋繼承:子類可繼承父類的所有非私有方法;覆蓋(Override):子類重新定義與父類同名的方法(指非靜態(tài)方法,要求方法名、返回值和參數(shù)列表完全相同);

如果子類的非抽象方法覆蓋了父類的抽象方法,稱子類“實現(xiàn)”了父類的抽象方法。abstractclassA{

doublem_a;abstractdoublesub();

doubleget(){returnm_a;} }classBextendsA{

doublem_a;doublesub(){m_a-=1;returnm_a;}doublesuper_sub(){super.m_a-=1;returnsuper.m_a;} doubleget(){returnm_a;} }//測試publicclassApplication1{publicstaticvoidmain(String[]args){Bb=newB();b.m_a=100;System.out.println(b.get());}輸出為:100《例》域的隱藏、方法覆蓋、方法重載classPoint{ //父類

intx=0,y=0;

voidmove(intdx,intdy) {x+=dx;y+=dy;} }classRealPointextendsPoint{ //子類

floatx=0.0f,y=0.0f; //域的隱藏

voidmove(intdx,intdy) //方法的覆蓋 { System.out.println("subclass'smove"); move((float)dx,(float)dy);} voidmove(floatdx,floatdy) //方法的重載 {x+=dx;y+=dy;} }

publicclassApplication1{publicstaticvoidmain(String[]args){RealPointrp=newRealPoint();System.out.println("x:"+rp.x+"y:"+rp.y);rp.move(1,1);System.out.println("x:"+rp.x+"y:"+rp.y);} }輸出: x:0.0y:0.0 subclass'smove x:1.0y:1.0th申is對當(dāng)卸前對癢象的禾引用蓋;作用鄭:1)調(diào)用道當(dāng)前躁對象勢的方所法或歇域;如:cl劉as陜s梨Po臨in扎t動{in古tx既=逃0,觀y帶=免0慢;寨v竭oi怕dmo方ve凳(i錫ntx,in雕ty){th識is霜.x+=滋x薪;th鑰is母.y+=聚y愈;饑}}2)作為沉參數(shù)瞇傳遞豎給其鎮(zhèn)他對環(huán)象或不方法如:in艘pu壓t.ad炒dA融ct籮io漁nL愛is孤te喉ne鼓r(th茫is)遼;su糕pe視r對當(dāng)佩前對至象的慎父類顛對象畜的引概用;作用:1)在起構(gòu)造鐵函數(shù)縱定義圍中用su疏pe壺r(參數(shù)均列表)調(diào)用展父類拉的構(gòu)些造函攝數(shù);pu棚bl綁ic每cl率as仁s車ap可pl朗e膚ex壘te鑰nd撒s叛fr鵝ui直ts{補pu序bl守icap猶pl撥e(掛in添tpr纏ic勻e){su丟pe偏r(側(cè)pr級ic充e);各}}2)用su儀pe貫r挖.域名引用飛父類澆的域基;《例5-與5》te肺st職Su彎pe絨r.渠ja貫va(第10壞0頁)問題拳:第六師行:my幅20樓0.速ba雙la稀nc策e瓶=腸50是訪攪問的娃哪一組個類農(nóng)的ba捉la岡nc丑e?第七譜行:my載20制0.苗ge鏈tB帶al董an鵲ce指()是訪揚問的響父類粒還是己子類嗽的函翼數(shù)?須訪問竊的是銜父類源還是伏子類窮的變籍量?cl鋸as配sSu調(diào)pe匪rC星la娘ss{in針tx;..宜.}cl油as箱sSu案bC幸la弓ssex冰te得nd利sSu慨pe盡rC街la絕ss{in爭ty;..祥.}父類蜂對象淚與子矩類對邀象的轉(zhuǎn)換Pu垮bl某ic惡c躬la錄ssUs損eS圓up份er菜Su非b{Su董pe忽rC燭la宴sssc甚,s刷c_瘋re閘f;Su方bC糠la稼sssb慚,s辰b_綁re凱f;sc慨=雄n陪ewSu位pe求rC季la劍ss()趴;sb=臣ne伯wSu老bC備la訴ss()故;sc折_r宅ef=sb;//對還搭是錯醋?//父類芝引用谷可以荷指向寨子類斑對象;sb糧_r殃ef=魯sc守;//對還振是錯耐?//錯,撲子類辛對象起不能谷賦給焰父類繩引用助;cl戶as求sSu永pe撓rC仔l(wèi)a吃ss{in糠tx;..件.}cl魯as呢sSu銹bC去la涂ssex聰te跳nd襲sSu袋pe怎rC孤la努ss{in敗ty;..陵.}in奇ta消=sc蹈_r并ef斬.x;//對或島錯?//對,求以子鳴類對醋象作伯為實驚際參裕數(shù)訪傳問父左類變她量;sb晝_r企ef=惹(Su雅bC藥la符ss)sc亂_r塑ef;//對或撈錯?//對,濁父類升引用緣瑞強制尸轉(zhuǎn)換簽成子笛類引貧用;sb霸_r貓ef=溉(Su耽bC留la支ss向)s炭c;//對或獄錯?//編譯毯通過叛,但媽接著聰用sb狂_r刮ef匪.y則錯;}cl箭as韻sSu襪pe屋rC農(nóng)la朱ss{in月tx;..弟.}cl臺as后sSu器bC飯la紫ssex外te鑰nd搖sSu窮pe初rC愿la栽ss{in敗ty;..壯.}父類完對象藥與子拼類對細(xì)象的轉(zhuǎn)換子類熄對象煮可以量看作繁是其碌父類府的對詳象;父類墓對象葛不能道被當(dāng)繡作是蓋其某摟一個壞子類洞的對療象;如果捉某個著方法殘的形禍?zhǔn)絽⑽輸?shù)是吸父類舍對象端,可壇以使午用子敏類對理象作賺為實央際參斑數(shù);如果和父類證對象票引用叮指向于的實壇際是或子類防對象托,可禍以采描用強忌制類廊型轉(zhuǎn)戒換將帳父類層對象糖引用澡轉(zhuǎn)化寫成子疤類對王象引駱用;引例捐:函數(shù)湖功能火:取絕暴對值射(每基一種外類型飼對應(yīng)尖一個找函數(shù)蒸)整數(shù)閑:in守ti_像ab驗s(舅in裁ti)討;單精啞度:fl掩oa毫tf_從ab賣s(哭fl充oa唱tf)仙;雙精驚度:do巴ub脖led_瘦ab蔑s(也do舒ub賠led)程;面向賀對象補:Ma際th雜.a漫bs(in借ti瓶);Ma婦th沃.a哥bs(曾fl麗oa興t珍f低);Ma盤th鳳.a弟bs(饒do傘ub飛le恩d闊)摔;多態(tài)(po廈ly獸mo創(chuàng)ph天is新m)多態(tài)(po羨ly細(xì)mo贊ph斧is芝m)指的揭是一揉個程條序(姜在同皮一個污類或啟不同制類中柱)包萬含多迎個名按稱相仰同、伴但功悟能或緣瑞具體柔實現(xiàn)醫(yī)不同奸的方艇法;主要鐮通過健方法科的覆蓋(不鎖同類抬)、重載(同澇一類或)實根現(xiàn);電話段卡域:踩剩余博金額方法咳:撥打擇電話查詢污金額無卡酷號電流話卡域:憑電話威機型壟號方法壞:獲文得電話丑機型毀號有卡加號電繡話卡域:仆卡號累,密銷碼,接入蒼號碼位,接寺通方法群:登與錄交耕換機IP卡域:丹有效泄時間方法蓬:撥打形電話20治0卡域:干附加棵費用方法炊:撥打燙電話修改購密碼電話IC卡方法她:撥打忠電話電話駝磁卡域:采使用菊地域方法糧:撥打浸電話繼承繼承繼承繼承繼承繼承撥打捕電話忙函數(shù)川在各般子類部中得俯到覆舅蓋同一犁個類停中定淋義多晴個同元名的爽方法(條只件:瘡形式四參數(shù)稱個數(shù)稼、類超型和拉順序不同);pu旬bl粘ic黨c造la炊ssMy庸Cl嬸as勞s{pu買bl哄ic傭s塔ta覺ti橫cin幸tab奸s(in皂tp)粘{re覺tu驚rnMa棄th享.a姨bs宗(p);坦}pu塵bl貸ic岔s防ta乳ti漁c垃lo訓(xùn)ngab末s(lo產(chǎn)ngp)押{re過tu匹rnMa公th免.a籮bs念(p);谷}pu球bl茫ic悄s交ta濱ti異c碎do攝ub撲leab騎s(do六ub制lep)撈{re碎tu懷rnMa畢th歇.a剩bs仁(p);身}}重載尋(ov桶er異lo膀ad)優(yōu)點夾:1)提高喚程序際的簡稿潔性劃;2)通過櫻接口柿操縱懂對象派;P1巷04仍/〈例5-蠢6〉雞Te輔st老Ov搭er曬ri具de引.j礦av長a問題尿:這習(xí)個例翻子是然重載膨還是百覆蓋民?在槽哪兩漠個函晶數(shù)體雷現(xiàn)?P5潤1插/bo掃ol磁ea與npe合rf絮or請mD尤ia曾l()P6婚3/bo待ol殿ea列npe漲rf沙or套mD蛇ia默l(算lo面ngcn,in按tpa什ss席)構(gòu)造熟函數(shù)復(fù)重襖載同一山類中更存在多個趣具有育不同竹參數(shù)血列表的構(gòu)徐造函參數(shù);例:P1訴07;(參刺數(shù)的朗數(shù)目霧、類糊型、氧順序唐不同鏟)例:P1賄08;(構(gòu)始造函恢?jǐn)?shù)的迫互相統(tǒng)調(diào)用副)目的:滿俊足對陽象的屋不同升初始辨化需頌求。構(gòu)造宅函數(shù)德繼且承子類津構(gòu)造漂函數(shù)啄總是先調(diào)芽用父沈類的構(gòu)村造函是數(shù);原則撓:子類洗繼承仍父類無參構(gòu)造晶函數(shù)酸;子類未顯肆式地調(diào)據(jù)用父階類的慰構(gòu)造宏函數(shù)厭,實肌則先喘調(diào)用心父類鋸的無左參數(shù)猾構(gòu)造自函數(shù)伐;子類顯示調(diào)用嶼父類耐的帶范參數(shù)屬構(gòu)造禿函數(shù)看(第息一句蘋);設(shè)計棉總結(jié)不定刺義構(gòu)乖造函棒數(shù)(塊缺省攜構(gòu)造扶函數(shù)早);定義省構(gòu)造吹函數(shù)團,并踩調(diào)用似父類線的帶肅參構(gòu)魂造函把數(shù);D2公00呼_C泳ar呀d(悔l斃on邊gcn,in胞tpa策ss傾,基do駱ub訓(xùn)le賺b蹄,do封ub花le礎(chǔ)a欄){su徑pe粒r(室cn,叛pa態(tài)ss會,撫b)穿;//必須新是第挎一句ad速di癥to紡ry求Fe蛾e=挑a;就}重載妻,實葬現(xiàn)多糟層次理對象飾初始懲化;D2芒00駱_C爛ar仍d(咳l牲on年gcn,in償tpa咸ss脊,疊do茂ub火le影a誼)D2械00歉_C慕ar粗d(幟l子on貌gcn,in奏tpa夾ss赤,純do異ub噴le劣b嚷,do咳ub沿le銜a迫)P1炒10洲/《例5-眉7》Co仆ns某tr曉uc姿to咸rO叢ve巴rr裹id濫e.輔ja嘆va問題遺:共飲調(diào)用欣了幾鼠個構(gòu)律造函羨數(shù)?包pa體ck涌ag差e包名景;〈例〉pa搖ck驅(qū)ag惑eA能;pa渡ck俱ag島eA.憲B除;作用赤:默認(rèn)驗的訪茫問規(guī)喉則:在同詳一程冰序包腎中出胞現(xiàn)的罵類才策可以佛直接城使用士它的仔數(shù)據(jù)險和方賄法。組織瞧和管也理文哨件的求方式軋:用以若存放浴該包捷中所船有類批文件糠(.居Cl虛as特s);包晃的引歌用1)使用上包名傘、類洲名前末綴如:cl況as脹smy纖Ap財pl猴etex乒te所nd輩sja掠va閱.a括pp腹le豈t.己Ap腸pl每et;ja頑va問.a控wt汗.B塵ut帝to羞nbt午n=籌ne熟wja訊va蜜.a盒wt鄙.B辛ut飄to登n(“啟動拌”)梅;注:此方款式是易完整敞引用伏形式鴉,但孫程序惰書寫粉不簡辱潔;2)加載庭需要診使用停的類(以后妨的程濟序可明采用毛省略插的書充寫方勇式)如:im要po欲rtja鑰va鑒.a南pp躬le擊t.躲Ap喉pl彎et;cl衛(wèi)as嗓smy盤Ap劈燕pl掙etex餃te諒nd捐s渠Ap茶pl既et那;3)加載駝?wù)麄€披包如:im悄po嚷rtja純va付.豈a涌pp讀le測t獅.*敲;假設(shè)侮有兩盟個類概:ja鴉va唯.a踩wt換.B唱ut革to辱n、ja能va見.s算w.緞Bu祥tt著on;ja榜va巧.a伯wt易.B句ut告to萍nbt稱n=繼ne勞wja雪va播.a推wt政.B龍ut莖to肝n()景;ja膏va慰.s圾w.濃Bu加tt漢onbt痕n=巡壽ne憑wja繩va揪.s蒸w.前Bu堵tt懼on()下;im套po片rtja洗va絕.a避wt枝.B押ut浸to出n;Bu邁tt烏onbt漆n=蘿ne紙w恩Bu棕tt形on認(rèn)()昏;CL溝AS等SP油AT穩(wěn)H環(huán)境責(zé)變量作用勵:指巾明所逝有缺前省的盒類字晚節(jié)碼劑文件盛路徑枕(實禍驗一規(guī));(1)通舞過au話to鼠ex央ec竟.b跟at文件嗚或DO存S命令怠設(shè)置通,如型:se賴t開CL蝕AS玩SP謊AT胳H=.漂;噸c:\j攔dk觀1.紀(jì)2\堡li削b;港c:\j事dk繳1.丘2\敵li品b.強cl搜as兼se采s.諷zi衣p;其中齡,用“;歷”號隔肯開的役各部服分就禽是可果能的鉛路徑桶。5.托7接口衛(wèi)(in漆t(yī)e歪rf轎ac淹e)定義犁:用來雄實現(xiàn)竭若干正特定賀功能毛的一趟組對村外接肅口和露規(guī)范釘;屬性鬧:只能悟是常莖量;方法賽:只能煮是抽腰象方鋼法;目的憲:實現(xiàn)媽多重敲繼承己;聲明德接添口接口冷的特?fù)?dān)征:脂由常年量和丑抽象包方法萌組成姨的特邪殊類羨;語法查:[筆pu陸bl質(zhì)ic腳]證in鼓te融rf粗ac晉e接口案名[育ex淺te穴nd譜s父接愁口名擱列表]{//常量李域聲草明[努pu步bl虜ic聞]掃[秩st允at播ic烈]蘭[掃fi片na釀l妥]域類不型算域壞名=常量譯表;//抽象燥方法捆聲明[峰pu駛bl趙ic但]堪[焦ab鍵st撫ra違ct奧]性[n報at薯iv侍e兔]返回委值茫方田法名把(參宿數(shù)列昏表)[t廢hr活ow異常臟列表];}P1俊00:系表統(tǒng)接蛋口Da臣ta馬In泊pu閱t的定壤義:pu立bl吊ic揭i蹦nt筋er保fa器ceja背va小.i凳o.熊Da艘ta攔In否pu估t{pu阿bl霞ic齡a姥bs勺tr五ac稀tbo臟ol庸ea訂nre駛ad比Bo仔ol顛ea突n(叉)曉;pu窯bl缸ic爪a苦bs奶tr悲ac軌t歌by向tere聞ad峽By務(wù)te(辟)鎖;pu雀bl榜ic蓬a瓶bs毀tr杠ac笑t貫ch正arre州ad朽Ch漸ar(王)熱;pu月bl犁ic嘗a紛bs河tr委ac細(xì)tDo嘆ub道lere腦ad改Do瓦ub鐮le(卸)及;……章…}P1夏19:Ac篩ti駝on坡Li約st株en專er定義稼:pu唱bl白ic蓬a漆bs迎tr榴ac農(nóng)t句in脂te楊rf許ac筋eAc區(qū)ti冶on岸Li撥st恒en靜erex庭te四nd把sEv介en雖tL衡is遷te骨ne聚r{pu識bl直ic瞧v福

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論