抽象類與接口Java

抽象類與接口Java

ID:42055743

大小:1.28 MB

頁數(shù):83頁

時間:2019-09-07

抽象類與接口Java_第1頁
抽象類與接口Java_第2頁
抽象類與接口Java_第3頁
抽象類與接口Java_第4頁
抽象類與接口Java_第5頁
資源描述:

《抽象類與接口Java》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第6章抽象類與接口講師:2009-06-08目標(biāo)當(dāng)完成本章后,你應(yīng)該能夠:理解抽象方法理解抽象類從抽象類繼承理解并使用接口實(shí)現(xiàn)接口從接口繼承抽象類從形狀開始抽象方法抽象類從形狀開始要開發(fā)一個圖形系統(tǒng)首先要定義相關(guān)的圖形類主要有:三角形平行四邊形矩形正方形……父類根據(jù)繼承的知識以及形狀之間的關(guān)系設(shè)計了所有形狀類的父類類Shape該類的方法在繼承時需要被覆蓋Shape.java父類Shape未定義成員變量成員方法如下:publicShape();publicdoublegetPerimeter();publ

2、icdoublegetArea();publicvoiddraw();周長和面積這是任何形狀都有的屬性返回類型是double由于Shape是所有形狀的父類并不是具體的形狀那么這兩個方法的方法體能否為空呢?答案是不能為空因?yàn)榉椒ǖ姆祷仡愋褪莇ouble這兩個方法必須返回一個double類型的值否則產(chǎn)生編譯錯誤,不能通過編譯編譯錯誤把兩句return0.0;注釋后重新編譯程序srcShape.java:9:缺少返回語句}^srcShape.java:13:缺少返回語句}^2錯誤子類Triangle設(shè)計并

3、實(shí)現(xiàn)子類三角形TriangleTriangle.java成員:privatedoublea;privatedoubleb;privatedoublec;publicTriangle();publicTriangle(doublea,doubleb,doublec);publicdoublegetPerimeter();publicdoublegetArea();publicvoiddraw();子類parallelogram設(shè)計并實(shí)現(xiàn)子類平行四邊形parallelogramParallelogram.j

4、ava成員:privatedoublea;privatedoubleb;privatedoubletheta;publicParallelogram();publicParallelogram(doublea,doubleb,doubletheta);publicdoublegetA();publicdoublegetB();publicdoublegetPerimeter();publicdoublegetArea();publicvoiddraw();Math.sin(theta)小問題但影響最終計

5、算結(jié)果經(jīng)常使用角度但該方法使用的是弧度角度轉(zhuǎn)換為弧度子類Rectangle設(shè)計并實(shí)現(xiàn)子類矩形rectangleRectangle.java該類從Parallelogram而非Shape進(jìn)行繼承成員:publicRectangle();publicRectangle(doublea,doubleb);publicvoiddraw();子類Rectangle構(gòu)造器的編寫通過super來調(diào)用父類的構(gòu)造器角度的賦值計算周長和面積通過構(gòu)造器已經(jīng)完成了成員變量的賦值因此該類不需要覆蓋父類的這兩個方法子類Square

6、設(shè)計并實(shí)現(xiàn)子類正方形squareSquare.java該類從Rectangle進(jìn)行繼承成員:publicSquare();publicSquare(doublea);publicvoiddraw();子類Square構(gòu)造器的寫法與其父類Rectangle類似該類不需要覆蓋計算周長和面積的方法類圖可能的副作用成員的繼承包括成員變量和成員方法父類的修改對于子類的影響子類對于父類有較強(qiáng)的依賴性耦合,coupling原則:低耦合,高內(nèi)聚分析父類Shape兩個方法的方法體沒有任何實(shí)際意義但是為了編譯能夠通過不能刪

7、去返回語句可是返回的值又沒有任何實(shí)際意義兩難境地Whatcanwedo?解決辦法可以告訴編譯器壓根兒就沒想實(shí)現(xiàn)這兩個方法因?yàn)榧词苟x了方法體也沒有任何實(shí)際用處那還不如根本就別定義方法體不想實(shí)現(xiàn)的方法只有方法頭部,沒有方法體抽象方法抽象方法不需要實(shí)現(xiàn)的方法之后方法的頭部沒有方法體用分號;代替正常的一對大括號{}語法:publicdoublegetPerimeter();publicdoublegetArea();重新編譯Shape.java編譯錯誤srccnpetershapeShape.java

8、:9:缺少方法主體,或聲明抽象publicdoublegetPerimeter();^srccnpetershapeShape.java:11:缺少方法主體,或聲明抽象publicdoublegetArea();^2錯誤抽象方法必須把方法聲明為抽象的使用Java語言的關(guān)鍵字abstract改成如下形式:publicabstractdoublegetPerimeter();publicabstractdoublegetArea();p

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

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

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