更新時(shí)間:2020-10-28 17:47:13 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1671次
想要了解Java接口特性,我們首先要知道接口并不是Java語言所獨(dú)有的,接口泛指實(shí)體把自己提供給外界的一種抽象化物(可以為另一實(shí)體),用以由內(nèi)部操作分離出外部溝通方法,使其能被內(nèi)部修改而不影響外界其他實(shí)體與其交互的方式。
在Java中看到接口,第一個(gè)想到的可能就是C++中的多重繼承和Java中的另外一個(gè)關(guān)鍵字abstract。從另外一個(gè)角度實(shí)現(xiàn)多重繼承是接口的功能之一,接口的存在可以使Java中的對(duì)象可以向上轉(zhuǎn)型為多個(gè)基類型,并且和抽象類一樣可以防止他人創(chuàng)建該類的對(duì)象,因?yàn)榻涌诓辉试S創(chuàng)建對(duì)象。
在Java中,interface關(guān)鍵字用來聲明一個(gè)接口,它可以產(chǎn)生一個(gè)完全抽象的類,并且不提供任何具體實(shí)現(xiàn)。interface 的特性如下:
1.接口中的方法可以有參數(shù)列表和返回類型,但不能有任何方法體。
2.接口中可以包含字段,但是會(huì)被隱式的聲明為 static 和 final 。
3.接口中的字段只是被存儲(chǔ)在該接口的靜態(tài)存儲(chǔ)區(qū)域內(nèi),而不屬于該接口。
4.接口中的方法可以被聲明為 public 或不聲明,但結(jié)果都會(huì)按照 public 類型處理。
5.當(dāng)實(shí)現(xiàn)一個(gè)接口時(shí),需要將被定義的方法聲明為 public 類型的,否則為默認(rèn)訪問類型, Java 編譯器不允許這種情況。
6.如果沒有實(shí)現(xiàn)接口中所有方法,那么創(chuàng)建的仍然是一個(gè)接口。
7.擴(kuò)展一個(gè)接口來生成新的接口應(yīng)使用關(guān)鍵字 extends ,實(shí)現(xiàn)一個(gè)接口使用 implements 。
8.接口中的方法是抽象方法(abstract),不能是靜態(tài)方法(static).接口的所有方法都是抽象的,而抽象方法是沒有static,有static的方法是不能override的,所以這樣定義接口才有意義。
同時(shí)在Java8中,接口有了新的特性:
1.默認(rèn)方法:允許接口方法定義默認(rèn)實(shí)現(xiàn),子類方法不必須實(shí)現(xiàn)此方法而就可以擁有該方法及實(shí)現(xiàn)。默認(rèn)方法使用 default 關(guān)鍵字修飾。可以通過實(shí)現(xiàn)類對(duì)象來調(diào)用。我們?cè)谝延械慕涌谥刑峁┬路椒ǖ耐瑫r(shí),還保持了與舊版本代碼的兼容性。
比如:java 8 API中對(duì)Collection、List、Comparator等接口提供了豐富的默認(rèn)方法。
2. 靜態(tài)方法:使用 static 關(guān)鍵字修飾??梢酝ㄟ^接口直接調(diào)用靜態(tài)方法,并執(zhí)行其方法體。我們經(jīng)常在相互一起使用的類中使用靜態(tài)方法。你可以在標(biāo)準(zhǔn)庫中找到像Collection/Collections或者Path/Paths這樣成對(duì)的接口和類。
以上就是為小伙伴們總結(jié)的Java接口特性,工欲善其事必先利其器,我們只有掌握了所有java接口特性才能隨心所欲地調(diào)用Java接口,實(shí)現(xiàn)更多的功能。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)