資源描述:
《Java面向?qū)ο缶幊?繼承與多態(tài)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、準備上課了!www.whunf.com.cnJava面向?qū)ο蟾呒壘幊讨v師:李志成繼承與多態(tài)目錄www.whunf.com.cnJava類對象引用回顧1Java繼承2Java多態(tài)3類、對象與引用什么是類(Class)?類是具有相同特性和行為的對象集合;是一種抽象,它把一類物體的特征抽象出來,通過適當?shù)臄?shù)據(jù)類型表示。什么是對象(Object)?與類相對而言,類是抽象,對象就是具體。例如:人就是一個抽象類,而你、我、他就是一個’人’的對象。什么是引用(reference)?對象的名字,用來操作對象。同一對象可以有多
2、個應(yīng)用嗎?www.whunf.com.cn為什么需要類?Class:n.班級;上課;等級階級;種類Object:n.物體;客體對象;目的目標目錄www.whunf.com.cnJava類對象引用回顧1Java繼承2Java多態(tài)3面向?qū)ο笕筇匦?.繼承3.多態(tài)1.封裝www.whunf.com.cn封裝:類就是封裝,封裝了屬性與方法。它是一種思想,其核心就是“暴露出必要的內(nèi)容給外部用,而對于內(nèi)部細節(jié),使用者不用去關(guān)心”立即進入面向?qū)ο蟮睦^承與多態(tài)世界一切從汽車開始www.whunf.com.cnpublicc
3、lassCar{publicintspeed;//in變量,表示汽車沫磨publicStringname;/表示汽車名字publicStringcolor;//表示汽車顏色publicvoidspeedUp(intp_speed){if(p_speed>0){speed+=p_speed;}}publicvoidslowDown(intp_speed){if(p_speed>0){inttempSpeed=speed-p_speed;if(tempSpeed>=0){speed=tempSpeed;}}}}系
4、統(tǒng)升級:需要支持公交汽車。業(yè)務(wù)點:1.包含普通汽車所有屬性與行為;2.增加“最大核載人數(shù)”、“當前旅客總數(shù)”屬性;3.增加“上客”、“下客”行為1.增加一個新類2.修改原來的類(選用此方式)解決修改原來的Car類www.whunf.com.cnpublicclassCar{//省略publicbooleanisBus;//下面是專門為公共汽車增加的三個屬性publicintmax_Passenger=35;publicintcurrent_Passenger=0;//專門為公共汽車增加的方法,完成旅客上車的功
5、能publicbooleangetOnBus(intp_amout){if(isBus){//省略}returnfalse;}//專門為公共汽車增加的方法,完成旅客下車的功能publicbooleangetDownBus(intp_amout){if(isBus){//省略}returnfalse;}}系統(tǒng)升級:需要支持跑車。業(yè)務(wù)點:1.包含普通汽車所有屬性與行為;2.增加“氮氣含量”屬性;3.增加“使用氮氣加速”行為1.增加一個新類2.修改原來的類解決到底有多少種類型的車需要支持?一類車一個類一類車一個類不
6、管有多少車,就有多少類,再多也不怕,就是“累”點而已突然一天,要為所有的車添加相同屬性和行為的時候,怎么辦?這就不是類與累了,而是“淚”了。www.whunf.com.cn問題提出:1.一個類表示所有的汽車類型,需要窮舉所有汽車的屬性與方法;2.一個類表示一個汽車類型,當需要修改的時候需要修改所有的類。繼承使用繼承——問題引刃而解www.whunf.com.cnpublicclassCarBase{publicintspeed;publicStringname;publicStringcolor;public
7、intmaxSpeed=0;inttempSpeed=0;if(p_speed>0){tempSpeed=speed+p_speed;}if(tempSpeed<=maxSpeed){speed=tempSpeed;}}publicvoidslowDown(intp_speed){if(p_speed>0){inttempSpeed=speed-p_speed;if(tempSpeed>=0){speed=tempSpeed;}}}}publicclassBusextendsCarBasepublicintm
8、ax_Passenger=35;//只需包含Bus特有的屬性publicintcurrent_Passenger=0;//只需包含Bus特有的方法publicbooleangetOnBus(intp_amout){if(isBus){//省略}returnfalse;}}publicclassSportsCarextendsCarBasepublicintnAmount=90;//保存氮氣的剩余量/