下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《面向?qū)ο蟪绦蛟O(shè)計》教案第21講教學(xué)對象計算機(jī)科學(xué)技術(shù)專業(yè)授課內(nèi)容8.1接口8.2接口方法課程標(biāo)準(zhǔn)教學(xué)目標(biāo)(一)知識目標(biāo)1.了解接口的作用2.掌握接口的定義、實(shí)現(xiàn)、繼承以及接口常量3.了解接口的各種方法,包括私有方法、默認(rèn)方法、靜態(tài)方法(二)能力目標(biāo)能夠熟練使用抽象類及接口解決實(shí)際問題教學(xué)方法采用講授法、演示法、討論法、案例教學(xué)。學(xué)時及分配(第1學(xué)時50分鐘)課堂講授30分鐘課堂練習(xí)20分鐘8.1.1接口的定義8.1.2接口的實(shí)現(xiàn)8.1.3接口的繼承8.1.4接口類型的使用8.1.5常量學(xué)時及分配(第2學(xué)時50分鐘)課堂講授30分鐘課堂練習(xí)20分鐘8.2.1默認(rèn)方法8.2.2私有方法8.2.3靜態(tài)方法8.2.4關(guān)于接口與抽象類知識點(diǎn)分析重點(diǎn):1.接口的定義及使用2.接口的實(shí)現(xiàn)難點(diǎn):接口的繼承、類繼承及接口實(shí)現(xiàn)教學(xué)過程設(shè)計內(nèi)容方式問題導(dǎo)入:Java語言中所有的類都處于一個類層次結(jié)構(gòu)中,除Object類以外,所有的類都只有一個直接父類,即子類與父類之間是單繼承的關(guān)系,而不允許多重繼承。而現(xiàn)實(shí)問題類之間的繼承關(guān)系往往是多繼承的關(guān)系,為了實(shí)現(xiàn)多重繼承,Java語言通過接口使得處于不同層次、甚至互不相關(guān)的類具有相同的行為。內(nèi)容要點(diǎn)8.1.1接口定義接口(interface)定義了一種可以被類層次中的任何類實(shí)現(xiàn)的行為的協(xié)議。在Java8之前,接口中只能定義常量和抽象方法,從Java8開始,接口中還可以定義默認(rèn)方法、靜態(tài)方法和私有方法。接口主要為實(shí)現(xiàn)類提供一種操作契約,接口可以用來實(shí)現(xiàn)多重繼承。接口的定義與類的定義類似,包括接口聲明和接口體兩部分。接口聲明使用interface關(guān)鍵字,格式如下:[public]interface接口名[extends超接口]{//接口體}【案例8-1】一個簡單的接口Eatable(可吃的)。接口中的抽象方法只有聲明,沒有實(shí)現(xiàn)。抽象方法也可以省略public、abstract修飾符,省略修飾符編譯器自動加上。在UML中,接口的表示與類圖類似,圖8-1是Eatable接口的UML圖,其中接口名上方使用<<interface>>表示接口,接口名和抽象方法名使用斜體表示。8.1.2接口的實(shí)現(xiàn)實(shí)現(xiàn)接口就是實(shí)現(xiàn)接口中定義的抽象方法,這需要在類聲明中用implements子句來表示實(shí)現(xiàn)接口,一般格式如下:[public]class類名implements接口列表{//類體定義}一個類可以實(shí)現(xiàn)多個接口,這需要在implements子句中指定要實(shí)現(xiàn)的接口并用逗號分隔。在這種情況下如果把接口理解成特殊的類,那么這個類利用接口實(shí)際上實(shí)現(xiàn)了多繼承。如果實(shí)現(xiàn)接口的類不是abstract類,則在類的定義部分必須實(shí)現(xiàn)接口中的所有抽象方法,即必須保證非abstract類中不能存在abstract方法?!景咐?-2】定義Mutton類實(shí)現(xiàn)Eatable接口。由于Mutton類不是抽象類,它必須實(shí)現(xiàn)Eatable接口中的howToEat()方法。為了保證實(shí)現(xiàn)的方法是接口中定義的方法,也應(yīng)該使用@Override注解。8.1.3接口的繼承一個接口可以繼承一個或多個接口。與類的繼承類似,子接口繼承父接口中的常量、抽象方法、默認(rèn)方法。定義接口的繼承仍使用extends關(guān)鍵字,一般格式如下:[public]interface接口名extends接口列表{//接口體定義}接口的繼承是子接口繼承父接口中的抽象方法和默認(rèn)方法。與類的繼承不同,一個接口可以繼承多個父接口?!景咐?-3】定義AA接口和BB接口,然后定義CC接口繼承了AA接口和BB接口。【程序9-3】CC.java上述AA、BB、CC接口與DD類之間的關(guān)系如圖8-3所示,圖中虛線表示接口實(shí)現(xiàn)。可以看到,接口允許多繼承,而類的繼承只能是單繼承。一個類實(shí)現(xiàn)多個接口就要實(shí)現(xiàn)每個接口中的抽象方法。接口中的常量和默認(rèn)方法都被實(shí)現(xiàn)類繼承,但接口中的靜態(tài)方法不被繼承。8.1.4接口類型的使用接口也是一種引用類型,任何實(shí)現(xiàn)該接口的實(shí)例都可以存儲在該接口類型的變量中。當(dāng)通過接口對象調(diào)用某個方法時,Java運(yùn)行時系統(tǒng)確定該調(diào)用哪個類中的方法。9.1.5常量定義在接口中的任何變量都自動加上public、final、static屬性,因此它們都是常量,常量的定義可以省略修飾符,下面三行代碼效果相同。intSTATUS=100;publicintSTATUS=100;publicfinalstaticintSTATUS=100;按照J(rèn)ava標(biāo)識符命名慣例,常量名都使用大寫字母命名。接口中的常量應(yīng)該使用接口名引用。8.2接口方法在Java的早期版本中,接口的所有方法都必須是抽象的。從Java8開始可以在接口中添加兩種有具體實(shí)現(xiàn)的方法:靜態(tài)方法和默認(rèn)方法。在Java9中,還可以定義私有(private)方法。8.2.1默認(rèn)方法可以給接口中任何方法提供一個默認(rèn)實(shí)現(xiàn),這稱為默認(rèn)方法(defaultmethod)。默認(rèn)方法需要使用default關(guān)鍵字定義。publicinterfaceBB{publicvoidshow();//一個抽象方法一個默認(rèn)方法,有方法體publicdefaultvoidprint(){一個默認(rèn)方法,有方法體System.out.println("這是BB接口的默認(rèn)方法");}}默認(rèn)方法需要通過引用變量調(diào)用。默認(rèn)方法可以被子接口和實(shí)現(xiàn)類繼承,但子接口中若定義相同的默認(rèn)方法,父接口的默認(rèn)方法被隱藏。8.2.2私有方法在Java9中,除了靜態(tài)方法和默認(rèn)方法外,還可以在接口中定義私有方法。私有方法通常實(shí)現(xiàn)某種行為,這些行為可以被默認(rèn)方法調(diào)用。publicinterfaceMyInterface{voidnormalMethod();//抽象方法私有方法實(shí)現(xiàn)某種操作privatevoidinit(){私有方法實(shí)現(xiàn)某種操作System.out.println("完成某些初始化操作");}defaultvoiddefaultMethodA(){在默認(rèn)方法中調(diào)用私有方法
init();在默認(rèn)方法中調(diào)用私有方法}defaultvoiddefaultMethodB(){在默認(rèn)方法中調(diào)用私有方法init();在默認(rèn)方法中調(diào)用私有方法}}如果使用默認(rèn)方法開發(fā)API,那么接口私有方法可能有助于實(shí)現(xiàn)其部分功能。8.2.3靜態(tài)方法在一個類中可以定義靜態(tài)方法,它被該類的所有實(shí)例共享。在Java8中,可以在接口中定義靜態(tài)方法,與接口有關(guān)的靜態(tài)方法都可以在接口中定義,而不再需要輔助類。定義靜態(tài)方法使用static關(guān)鍵字,默認(rèn)的訪問修飾符是public。publicinterfaceSS{intSTATUS=100;靜態(tài)方法也是實(shí)現(xiàn)的方法publicstaticvoiddisplay(){靜態(tài)方法也是實(shí)現(xiàn)的方法System.out.println(STATUS);}}接口的靜態(tài)方法使用“接口名.方法名()”的形式訪問。接口的靜態(tài)方法不能被子接口繼承,也不被實(shí)現(xiàn)類繼承。靜態(tài)方法在哪個接口中定義,就用哪個接口名訪問。8.2.4關(guān)于接口與抽象類在Java8之前的時代,在抽象類和接口之間做出選擇比現(xiàn)在容易。在那時,如果需要在擴(kuò)展/實(shí)現(xiàn)類之間共享一些實(shí)現(xiàn),就選擇抽象類。否則,就使用接口。今天,也可以將實(shí)現(xiàn)放在接口中,因此創(chuàng)建抽象類的動機(jī)肯定會減少。然而,仍然有一些理由使用抽象類:在抽象類中可以添加最終(final)方法,但在接口中不能。如果想阻止一個方法被覆蓋,這一點(diǎn)非常重要。在抽象類中,可以使用字段保存對象的狀態(tài)。相反,接口中的字段是publicstatic的,這意味著它們的值在實(shí)現(xiàn)類的所有實(shí)例之間共享。在抽象類中可以定義構(gòu)造方法,接口中不能。采用機(jī)房授課邊講邊練,同時用啟發(fā)式、討論式、案例教學(xué)等教學(xué)方法。布置課外學(xué)習(xí)任務(wù)編寫程序,定義一個名為Swimmable(可游泳的)的接口,其中包含voidswim()方法,定義另一個名為Flyable(可飛的)的接口,其中包含voidfly()方法。定義一個名為Ani
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《旅行社線上線下融合模式對旅游產(chǎn)業(yè)鏈價值鏈的優(yōu)化研究》教學(xué)研究課題報告
- 2025年成都市武侯區(qū)第一幼兒園招聘財務(wù)人員備考題庫帶答案詳解
- 2025年浦城縣事業(yè)單位公開招聘緊缺急需專業(yè)工作人員35人備考題庫參考答案詳解
- 2025年珠海市共樂幼教集團(tuán)三溪園區(qū)(三溪幼兒園)公開招聘合同制專任教師備考題庫有答案詳解
- 3D打印導(dǎo)板在腦腫瘤活檢中的精準(zhǔn)定位
- 2025年內(nèi)蒙古能源集團(tuán)招聘504人備考題庫參考答案詳解
- 2025年家政服務(wù)行業(yè)標(biāo)準(zhǔn)化建設(shè)與監(jiān)管報告
- 高中數(shù)學(xué)資優(yōu)生導(dǎo)師制培養(yǎng)模式與信息技術(shù)融合教學(xué)研究教學(xué)研究課題報告
- 小學(xué)美術(shù)教學(xué)中植物自然寫生與立體造型藝術(shù)創(chuàng)作課題報告教學(xué)研究課題報告
- 2025年阿榮旗教育事業(yè)發(fā)展中心公開遴選教研員備考題庫及答案詳解一套
- T-HNBDA 003-2024 醫(yī)用潔凈室施工質(zhì)量驗收標(biāo)準(zhǔn)
- 2024-2025學(xué)年北京市海淀區(qū)九年級(上)期末數(shù)學(xué)試卷
- 《農(nóng)光互補(bǔ)光伏電站項目柔性支架組件安裝施工方案》
- 深圳大學(xué)《供應(yīng)鏈與物流概論》2021-2022學(xué)年第一學(xué)期期末試卷
- 電焊工模擬考試題試卷
- 網(wǎng)約車停運(yùn)損失賠償協(xié)議書范文
- GA/T 2130-2024嫌疑機(jī)動車調(diào)查工作規(guī)程
- 公共關(guān)系與人際交往能力智慧樹知到期末考試答案章節(jié)答案2024年同濟(jì)大學(xué)
- 中國法律史-第三次平時作業(yè)-國開-參考資料
- 護(hù)理專業(yè)(醫(yī)學(xué)美容護(hù)理方向)《美容技術(shù)》課程標(biāo)準(zhǔn)
- 2016廣東省排水管道非開挖修復(fù)工程預(yù)算定額
評論
0/150
提交評論