Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想

Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想

ID:41324127

大?。?.35 MB

頁(yè)數(shù):20頁(yè)

時(shí)間:2019-08-22

Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想_第1頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想_第2頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想_第3頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想_第4頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想_第5頁(yè)
資源描述:

《Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開(kāi)發(fā)第3章面向?qū)ο笤O(shè)計(jì)思想2驅(qū)動(dòng)任務(wù)一創(chuàng)建一個(gè)抽象類(lèi)Animal,它包含一個(gè)abstract的sound()方法;派生一個(gè)子類(lèi)Dog,實(shí)現(xiàn)父類(lèi)抽象方法sound();創(chuàng)建子類(lèi)Dog對(duì)象,然后調(diào)用它的sound()方法。3目標(biāo)及知識(shí)點(diǎn)定義和使用抽象類(lèi)2final關(guān)鍵字的使用3抽象類(lèi)的概念114抽象類(lèi)如果一個(gè)類(lèi)中沒(méi)有包含足夠的信息來(lái)描繪一個(gè)具體的對(duì)象,這樣的類(lèi)就是抽象類(lèi)定義一個(gè)抽象類(lèi)的格式如下abstractclassAbstractClassName{……}publicabstractclassShap

2、e{publicabstractdoublearea();//抽象方法publicabstractdoublevolume();//抽象方法}當(dāng)一個(gè)類(lèi)被定義成abstract類(lèi)時(shí),表示一個(gè)抽象的概念,它不能用new關(guān)鍵字實(shí)例化對(duì)象,例如上面定義的Shape類(lèi)就是一個(gè)抽象類(lèi),只有被繼承并在子類(lèi)中重寫(xiě)其抽象方法,它才有意義。5【例3-1】定義一個(gè)代表形狀的抽象類(lèi),并派生出圓柱體類(lèi)和長(zhǎng)方體類(lèi),計(jì)算底面半徑為2高為3的圓柱體體積和長(zhǎng)、寬、高分別為3、2、4的長(zhǎng)方體體積。//定義一個(gè)形狀抽象類(lèi)abstractclassShape{d

3、oubleradius,length,width,height;abstractdoublevol();//求體積的抽象方法Shape(doubler,doubleh){//對(duì)半徑和高進(jìn)行初始化的構(gòu)造方法radius=r;height=h;}Shape(doublel,doublew,doubleh){//對(duì)長(zhǎng)寬高進(jìn)行初始化的構(gòu)造方法length=l;width=w;height=h;}}/***圓柱體類(lèi)*/classCircleextendsShape{Circle(doubler,doubleh){super(r,h)

4、;}doublevol(){//重寫(xiě)父類(lèi)抽象方法return(3.1416*radius*radius*height);}}/***長(zhǎng)方體類(lèi)*/classRectangleextendsShape{Rectangle(doublel,doublew,doubleh){super(l,w,h);}doublevol(){//重寫(xiě)父類(lèi)抽象方法return(length*width*height);}}/***主類(lèi)*/publicclassAbstractClassDemo{publicstaticvoidmain(String

5、[]args){Circlec=newCircle(2,3);Rectangler=newRectangle(3,2,4);System.out.println("圓柱體體積="+c.vol());System.out.println("長(zhǎng)方體體積="+r.vol());}}結(jié)果:圓柱體體積=37.6992長(zhǎng)方體體積=24.0【思考】abstract修飾的類(lèi)一定有abstract修飾的方法嗎?Java面向?qū)ο筌浖_(kāi)發(fā)6最終類(lèi)-------final類(lèi)有一種類(lèi)是不能派生出子類(lèi)的,我們叫這種類(lèi)為最終類(lèi)。即我們用final來(lái)修飾

6、的類(lèi)。publicfinalclassTest1{}Java面向?qū)ο筌浖_(kāi)發(fā)7最終類(lèi)-------final類(lèi)如果一個(gè)類(lèi)不允許其子類(lèi)覆蓋某個(gè)方法,則可以把這個(gè)方法聲明為final方法publicfinalvoidf2(){System.out.println("f2");}Java面向?qū)ο筌浖_(kāi)發(fā)8【例3-2】使用final方法的例子classTest1{publicvoidf1(){System.out.println("f1");}//無(wú)法被子類(lèi)覆蓋的方法publicfinalvoidf2(){System.out.p

7、rintln("f2");}}publicclassTest2extendsTest1{publicvoidf1(){System.out.println("Test1父類(lèi)方法f1被覆蓋!");}publicstaticvoidmain(String[]args){Test2t=newTest2();t.f1();t.f2();//調(diào)用從父類(lèi)繼承過(guò)來(lái)的final方法}}結(jié)果:Test1父類(lèi)方法f1被覆蓋!f29任務(wù)實(shí)現(xiàn)123分析類(lèi)及關(guān)系定義抽象類(lèi)AnimalDog類(lèi)利用構(gòu)造方法為type屬性賦值45Dog類(lèi)實(shí)現(xiàn)Animal

8、的sound()main方法進(jìn)行測(cè)試10驅(qū)動(dòng)任務(wù)二有一個(gè)接口AddImp規(guī)定了有求和的方法sum();另外一個(gè)SubImp接口規(guī)定了有減法運(yùn)算的方法subtract();再聲明一個(gè)接口Calculatable繼承于以上兩個(gè)接口。創(chuàng)建Calculator類(lèi)實(shí)現(xiàn)接口Calculatable,并生成對(duì)象測(cè)試該

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。