成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 接口(9)

lncwwn / 3060人閱讀

摘要:接口和內(nèi)部類為我們提供了一種將接口與實現(xiàn)分離的更加結(jié)構(gòu)化的方法。

接口和內(nèi)部類為我們提供了一種將接口與實現(xiàn)分離的更加結(jié)構(gòu)化的方法。

1.抽象類和抽象方法

抽象類,是普通的類與接口之間的一種中庸之道.

抽象方法:僅有聲明而沒有方法體.

抽象類:包含抽象方法的類.如果一個類包含一個或多個抽象方法,該類必須被限定為抽象的.

如果從一個抽象類繼承,并想創(chuàng)建該新類的對象,那么久必須為基類中的所有抽象方法提供方法定義。如果不這樣做,那么導(dǎo)出類便也是抽象的,且編譯器將會強制用abstract關(guān)鍵字來限定這個類.

創(chuàng)建沒有任何抽象方法的抽象類:阻止產(chǎn)生這個類的任何對象.

2.接口

interface關(guān)鍵字產(chǎn)生一個完全抽象的類,它沒有提供任何具體實現(xiàn).它允許創(chuàng)建者確定方法名、參數(shù)列表和返回類型,但是沒有任何方法體(接口之提供;額形式,二尾提供任何具體實現(xiàn)).

一個接口表示:所有實現(xiàn)了該特定接口的類看起來都像這樣(接口被用來建立類與類之間的協(xié)議).

接口可以包含域,但是這些域隱式地是static和final的.

要讓一個類遵循某個特定接口(或者是一組接口),需要使用implements關(guān)鍵字.

在接口中,方法默認(rèn)是public的.當(dāng)要實現(xiàn)一個接口時,接口中被定義的方法必須被定義為是public的.

3.完全解耦

創(chuàng)建一個能夠根據(jù)所傳遞的參數(shù)對象的不同而具有不同行為的方法,被稱為策略設(shè)計模式.

適配器設(shè)計模式:適配器中的代碼將接受你所擁有的接口,并產(chǎn)生你所需要的接口.

將接口從具體的實現(xiàn)中解耦使得接口可以應(yīng)用于多種不同的具體實現(xiàn),因此代碼也就更具可復(fù)用性.

4.Java中的多重繼承

使用接口的核心原因:為了能夠向上轉(zhuǎn)型為多個基類型(以及由此帶來的靈活性).

第二個原因:防止客戶端程序員創(chuàng)建該類的對象,并確保這僅僅是建立一個接口.

如果要創(chuàng)建不帶任何方法定義和成員變量的基類,那么就應(yīng)該選擇接口而不是抽象類.事實上,如果知道某事物應(yīng)該成為一個基類,那么第一選擇應(yīng)該是使它成為一個接口.

5.通過繼承來擴展接口

通過繼承,可以很容易地在接口中添加新的方法聲明,還可以通過繼承在新接口中組合數(shù)個接口,這兩種情況都可以獲得新的接口.

一般情況下,只可以將extends用于單一類,但是可以引用多個基類接口,只需用逗號將接口名一一隔開即可.

在打算組合的不同接口中使用相同的方法名通常會造成代碼可讀性的混亂,請盡量避免這種情況.

6.適配接口

接口允許同一個接口具有多個不同的具體實現(xiàn).在簡單的情況中,他的體現(xiàn)形式通常是一個接受接口類型的方法,而該接口的實現(xiàn)和向該方法傳遞的對象則取決于方法的使用者.

7.接口中的域

在Java SE5之前,在的接口中定義域(static&final)是產(chǎn)生于enum具有相同效果的類型的唯一途徑.

在接口中定義的域不能是"空final",但是可以被非常量表達式初始化.

域不是接口的一部分,它們的值被存儲在該接口的靜態(tài)存儲區(qū)域內(nèi).

8.嵌套接口

接口可以嵌套類或其他接口中.

嵌套在另一個接口中的接口自動就是public的,而不能聲明為private的.

當(dāng)實現(xiàn)某個接口時,并不需要實現(xiàn)嵌套在其內(nèi)部的任何接口.

private接口不能再定義它的類之外被實現(xiàn).

9.接口與工廠

接口是實現(xiàn)多重繼承的途徑,而生成遵循某個接口的對象的典型方式就是工廠方法設(shè)計模式.

與直接調(diào)用構(gòu)造器不同,在工廠對象上調(diào)用的是創(chuàng)建方法,而該工廠對象將生成接口的某個實現(xiàn)的對象.

理論上,通過這種方式,我們的代碼將完全與接口的實現(xiàn)分離,這就使得我們可以透明地將某個實現(xiàn)替換為另一個實現(xiàn).

END

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71598.html

相關(guān)文章

  • Java編程思想》筆記9.接口

    摘要:抽象類和抽象方法抽象方法這種方法是不完整的,僅有聲明而沒有方法。創(chuàng)建抽象類和抽象方法非常有用,因為他們可以使累的抽象性明確起來,并告訴用戶和編譯器打算怎樣來使用它們。接口用于建立類于類之間的協(xié)議。與抽象類相同,防止客戶端程序員創(chuàng)建該類對象。 點擊進入我的博客 接口和內(nèi)部類為我們提供了一種將接口與實現(xiàn)分離的更加結(jié)構(gòu)化的方法。 9.1抽象類和抽象方法 抽象方法:這種方法是不完整的,僅有...

    JessYanCoding 評論0 收藏0
  • Thinking in Java-接口

    摘要:具體而言就是高層模塊不依賴于底層模塊,二者都同依賴于抽象抽象不依賴于具體,具體依賴于抽象。 9.接口 9.1 抽象類和抽象方法 抽象類:包含抽象方法的類,自身無法實例化 抽象方法:僅有聲明,沒有方法體 關(guān)系:抽象方法是抽象類的充分不必要條件,因此抽象類中允許方法實現(xiàn)和抽象方法同時存在 語法 // 抽象類 abstract class ClassName{} // 抽象方法 ab...

    silenceboy 評論0 收藏0
  • 樂字節(jié)-Java8核心特性實戰(zhàn)之函數(shù)式接口

    摘要:大家好,上一篇小樂給大家講述了樂字節(jié)核心特性表達式,點擊回顧。接下來繼續(xù)核心特性之函數(shù)式接口。感謝大家欣賞小樂帶來的核心特性之函數(shù)式接口,接下來還會更多核心技術(shù)講解,請關(guān)注樂字節(jié)如需要視頻課程,請搜索樂字節(jié)騰訊課堂 大家好,上一篇小樂給大家講述了《樂字節(jié)-Java8核心特性-Lambda表達式》,點擊回顧。接下來繼續(xù):Java8核心特性之函數(shù)式接口。 什么時候可以使用Lambda?通常...

    niceforbear 評論0 收藏0
  • 聊聊 Java8 以后各個版本的新特性

    摘要:于是抽時間看了看以后各個版本的特性,做了一個總結(jié)。年和公開版本發(fā)布,取名為。此后對應(yīng)版本就是,。發(fā)布,是一個重大版本更新。在此之后,就是每六個月發(fā)布一次新版本。以上和參考資料聊了一些關(guān)于的歷史,下面我們看看各個版本有那些新特性。 【這是 ZY 第 11 篇原創(chuàng)技術(shù)文章】 某天在網(wǎng)上閑逛,突然看到有篇介紹 Java 11 新特性的文章,頓時心里一驚,畢竟我對于 Java 的版本認(rèn)識...

    K_B_Z 評論0 收藏0
  • Oracle正式發(fā)布Java 9,引入新的Java編程組件

    摘要:的核心變化就是引入了一種新的編程組件,也就是模塊,按照的說法,它是一個可命名的自描述的代碼和數(shù)據(jù)集合。宣布會按照每六個月一次的節(jié)奏進行發(fā)布,意味著是最后一次特性驅(qū)動的版本發(fā)布,這反映出了目前管理的特點。 Java SE 9.0于2017年9月21日發(fā)布。JDK 9的核心變化就是引入了一種新的Java編程組件,也就是模塊,按照Oracle的說法,它是一個可命名的、自描述的代碼和數(shù)據(jù)集合。...

    shenhualong 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<