![java課件01語言基礎(chǔ)_第1頁](http://file4.renrendoc.com/view/8eb8bb4e6783a4bf5fc46e5a74977b3e/8eb8bb4e6783a4bf5fc46e5a74977b3e1.gif)
![java課件01語言基礎(chǔ)_第2頁](http://file4.renrendoc.com/view/8eb8bb4e6783a4bf5fc46e5a74977b3e/8eb8bb4e6783a4bf5fc46e5a74977b3e2.gif)
![java課件01語言基礎(chǔ)_第3頁](http://file4.renrendoc.com/view/8eb8bb4e6783a4bf5fc46e5a74977b3e/8eb8bb4e6783a4bf5fc46e5a74977b3e3.gif)
![java課件01語言基礎(chǔ)_第4頁](http://file4.renrendoc.com/view/8eb8bb4e6783a4bf5fc46e5a74977b3e/8eb8bb4e6783a4bf5fc46e5a74977b3e4.gif)
![java課件01語言基礎(chǔ)_第5頁](http://file4.renrendoc.com/view/8eb8bb4e6783a4bf5fc46e5a74977b3e/8eb8bb4e6783a4bf5fc46e5a74977b3e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7
章接口上一章回顧類的繼承、多態(tài)特性類的繼承多態(tài)abstract修飾符final修飾符2本章節(jié)授課目標(biāo)接口的定義與使用接口的繼承與組合接口常量的定義與使用接口與抽象類的區(qū)別34接口的定義與使用一個(gè)任務(wù)現(xiàn)在你受一家工廠委托,要設(shè)計(jì)一款盡可能多的支持各種插頭樣式的電源板,你打算怎么做?5你需要一份這樣的規(guī)范文檔6從故事中我們收獲了什么?大家都遵循某一規(guī)格時(shí),彼此整合工作沒有問題。例如你穿43碼的鞋子,如果鞋廠嚴(yán)格遵循規(guī)范,買任何廠家的43碼鞋子都合腳。在一個(gè)實(shí)體上可以滿足多個(gè)規(guī)范的規(guī)格要求。例如一款插座可以匹配好多種插頭規(guī)格。7interface接口interface概念在編程語言中,接口就像之前的規(guī)格文檔一樣,在接口中定義規(guī)格參數(shù)(方法),然后交給類去實(shí)現(xiàn)接口中的規(guī)范要求(實(shí)現(xiàn)方法)。接口定義語法:[public]interface接口名稱[extends父接口1…父接口n]{[public]方法定義;[public]接口常量定義;[public]嵌套類或嵌套接口;}所有接口內(nèi)的元素默認(rèn)都是public的,所以public可以不寫。接口的修飾符如果不寫public則是package的訪問權(quán)限。8interface接口定義與使用示例interfaceIDemo1{voidsayHello(Stringname);}publicclassDemo11implementsIDemo1{@OverridepublicvoidsayHello(Stringname){System.out.println("hello:"+name);}publicstaticvoidmain(String[]args){IDemo1obj=newDemo11();obj.sayHello("test");}}關(guān)鍵字未講知識點(diǎn)未講知識點(diǎn)9implements關(guān)鍵字implements屬于定義類時(shí)使用的關(guān)鍵字,用于說明該類中的代碼將會實(shí)現(xiàn)某接口中的定義約定。語法:示例:[類修飾符]class類名稱[extendsxx]implements接口1[,接口2,接口n]{}見前頁實(shí)現(xiàn)類中要實(shí)現(xiàn)所有接口中定義的方法。10接口示例接口繼承接口publicinterfaceIInterface1{publicvoida();}publicinterfaceIInterface2extendsIInterface1{publicvoidb();}publicclassImpl1implementsIInterface2{@Overridepublicvoidb(){}@Overridepublicvoida(){}}11接口繼承接口是多重繼承的publicinterfaceIInterface1{voida();}publicinterfaceIInterface2{voidb();}publicinterfaceIInterface3extendsIInterface1,IInterface2{voidc();}12接口常量接口常量指的是在接口中定義的常量字段(field)接口常量缺省就是publicstaticfinal的,因此可以不寫接口常量修飾符。接口常量定義后一般會立即給常量賦予初始值。像importstatic導(dǎo)入其它類的靜態(tài)元素一樣,接口常量的使用容易造成程序代碼的混亂,不建議大量使用。13接口常量接口常量定義方式接口常量的使用publicinterfaceIInterface1{floatPI=3.1415926f;}publicclassImpl2implementsIInterface1{publicvoidb(){System.out.println(PI);}}直接使用14接口常量與接口繼承接口可以繼承接口,因此接口常量可以在擴(kuò)展接口中訪問到,因此引出一個(gè)問題就是擴(kuò)展接口與超接口出現(xiàn)常量同名的情況如何處理?示例:publicinterfaceX{intval=1;}publicinterfaceYextendsX{intval=2;intsum=val+val;}想讓X接口中的常量val與Y接口的val相加怎么處理?intsum=val+X.val;使用完全限定名去訪問超接口X中的常量15接口常量與實(shí)現(xiàn)類除了在實(shí)現(xiàn)類中可以訪問到接口常量以外,也可以通過實(shí)現(xiàn)類的類實(shí)例對象訪問接口常量。示例:publicinterfaceX{intval=1;}publicinterfaceYextendsX{intval=2;intsum=val+X.val;}publicclassZimplementsY{}publicstaticvoidmain(String[]args){Zz=newZ();System.out.println(z.sum);}極其容易產(chǎn)生二義性,大概了解這里的知識點(diǎn)即可,不建議使用。16標(biāo)記接口有一類特殊的接口,定義后接口中不包含任何內(nèi)容,編程時(shí)還經(jīng)??吹匠绦騿T去實(shí)現(xiàn)該接口,這種特殊的接口稱作“標(biāo)記接口”。標(biāo)記接口起的作用是標(biāo)記出所有實(shí)現(xiàn)該接口的類都將符合某種契約。例如:實(shí)現(xiàn)了java.io.Serializable標(biāo)記接口的類可以視為可以隨意的做序列化處理。定義一個(gè)空接口,里面什么都不定義就是標(biāo)記接口了,如下:publicinterfaceIInterface1{}17接口與抽象類的區(qū)別接口是”likaa”關(guān)系,類是”isa”關(guān)系。接口與抽象類在某些情況下很相似,都可以定義方法約定(接口方法和抽象方法),都可以擴(kuò)展超接口或超類的定義,那么最主要的區(qū)別是什么呢?類是單繼承關(guān)系,一個(gè)類最多只能從一個(gè)抽象類派生,但是一個(gè)接口可以繼承(“組合”)多個(gè)接口,類可以實(shí)現(xiàn)N個(gè)接口,因此接口更靈活。抽象類中可以包含非抽象方法,可以提前為派生類定義一些公共基礎(chǔ)方法,例如輸出調(diào)試信息,輸出性能計(jì)數(shù)的公共基礎(chǔ)方法,為子類提供極大的便利。18接口使用使用接口定義變量,然后使用實(shí)現(xiàn)類創(chuàng)建實(shí)例賦予變量。publicinterfaceA{voidsayHello();}publicclassBimplementsA{publicvoidsayHello(){System.out.println(“hello”);}}Ax=newB();x.sayHello();接口定義變量,new實(shí)現(xiàn)類19Instanceof運(yùn)算符可以通過instanceof運(yùn)算符測試某個(gè)類實(shí)例是否滿足某接口規(guī)范。publicinterfaceA{}publicclassBimplementsA{}publicstaticvoidmain(String[]args){Bobj=newB();System.out.println(objinstanceofA);}20
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銀川年貨運(yùn)從業(yè)資格證考試模擬
- 機(jī)械租賃合同(2篇)
- 服務(wù)支付協(xié)議書(2篇)
- 村委與物業(yè)合同(2篇)
- 2025年山西國際商務(wù)職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年四川中醫(yī)藥高等專科學(xué)校高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年北京培黎職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025至2031年中國魔力不漏雙柄帶蓋喝水杯行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國電動病床行業(yè)投資前景及策略咨詢研究報(bào)告
- 床不僅是睡覺的地方-探訪健康生活方式的新篇章
- 【人教版化學(xué)】必修1 知識點(diǎn)默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 老年癡呆癥患者生活陪護(hù)協(xié)議
- 2024年-急診氣道管理共識課件
- 小學(xué)語文中段整本書閱讀的指導(dǎo)策略研究 中期報(bào)告
- 浙教版2023-2024學(xué)年數(shù)學(xué)八年級上冊期末復(fù)習(xí)卷(含答案)
- 運(yùn)動訓(xùn)練與康復(fù)治療培訓(xùn)資料
- 小班繪本教學(xué)《藏在哪里了》課件
- 老師呀請你別生氣教學(xué)反思
評論
0/150
提交評論