接口

什么是接口

一個Java接口 是一些方法特征的集合塘匣,這些方法特征當然來自于具體方法硕盹,但是它們一般都是來自于一些在系統(tǒng)中不斷出現(xiàn)的方法内斯。一個接口只有方法的特征栋猖,而沒有方法的實現(xiàn)净薛,因此這些方法在不同的地方被實現(xiàn)時,可以具有完全不同的行為蒲拉。

在Java語言規(guī)范中肃拜,一個方法的特征僅僅包括方法的名字,參量的數(shù)目和種類雌团,而不包括方法的返回類型爆班,參量的名字以及所拋出的異常,在Java編譯器檢查方法的置換時候辱姨,則進一步檢查2個方法(分父類型與子類型)的返回類型和拋出的異常是否相同柿菩。

在使用接口時候,需要指明接口本身雨涛,以及實現(xiàn)這個接口的類枢舶。這種關系叫做接口繼承懦胞;而一個類是另一個類的子類,這種關系叫實現(xiàn)繼承凉泄。接口繼承的規(guī)則與實現(xiàn)繼承的規(guī)則不同躏尉,一個類最多只能夠有一個父類,但是可以同時實現(xiàn)幾個接口

Java接口本身沒有任何實現(xiàn)后众,因為Java接口不涉及表象胀糜,而只描述public行為,所以Java接口比Java抽象類更為抽象化蒂誉。

一個Java接口的方法只能是抽象的和公開的教藻,Java接口不能有構造方法。Java接口可以有public右锨,靜態(tài)的和final的屬性括堤。

實現(xiàn)一個共同的Java接口的兩個類常常完全不同,但是有一組相同的方法和常數(shù)绍移。一些看上去毫不相干的類悄窃,可以提供相類似的服務,從而具有相同的接口蹂窖。

接口和類的最重要的區(qū)別是轧抗,接口僅僅描述方法的特征(Signature),而不給出方法的實現(xiàn)瞬测;而類不僅給出方法的特征鸦致,而且給出方法的實現(xiàn)。因此涣楷,接口把方法的特征和方法的實現(xiàn)分割開來分唾。這種分割,體現(xiàn)在接口常常代表一個角色(role),它包裝與 該角色相關的操作和屬性狮斗,而實現(xiàn)這個接口的類便是扮演這個角色的演員绽乔。一個角色可以由不同的演員來演,而不同的演員之間除了扮演一個共同的角色之外碳褒,并不要求有任何其他的共同之處

為什么要使用接口

首先我們要思考如果沒有接口會怎么樣呢折砸?一個類總歸可以從另外一個類繼承,難道這還不夠嗎?這需要了解一個名詞 可插入性 沙峻,因為Java語言是一個單繼承的語言睦授,換而言之,一個類只能有一個父類摔寨,因此去枷,在很多的情況下,這個類可能已經(jīng)有了父類,這個時候給他加上一個新的超類是不現(xiàn)實的删顶。但是接口是對可插入性的保證竖螃,在一個類的等級結構中的任何一類都可以實現(xiàn)一個接口,這個接口會影響到此類的所有子類逗余,但是不會影響到此類的任何父類特咆。此類將不得不實現(xiàn)這個接口所規(guī)定的方法,而其子類則可以從此類自動繼承到這些方法录粱,也可以選擇置換掉所有這些方法腻格,或者其中的某一些方法。這時候啥繁,這些子類就具有了可插入性菜职。

關聯(lián)的可插入性

一個對象要完成一項任務,所以需要知道其他對象输虱,并且調用其他對象的方法些楣,這個對象對其他對象的知識叫做關聯(lián)脂凶。

如果一個管理不是針對一個具體類宪睹,而是針對一個接口的,那么任何實現(xiàn)這個接口的類都可以滿足要求蚕钦。換而言之亭病,當前對象并不在意所關聯(lián)的是哪一個具體類,而僅僅關心這個類是否實現(xiàn)了某一個接口嘶居。

調用的可插入性

一個對象不可避免的需要調用其他對象的方法罪帖,這種調用不一定非得是是某一個具體類,而可以是一個接口邮屁。這樣一來整袁,任何實現(xiàn)了這個接口的具體類都可以被當前對象調用,而當前對象到底調用的是哪一個具體類的實例則完全可以冬天地決定佑吝。

因此坐昙,接口提供了關聯(lián)以及方法調用上的可插入性,軟件系統(tǒng)規(guī)模越大芋忿,生命周期越長炸客,接口的重要性就越大。接口使得軟件系統(tǒng)在靈活性和可擴展性戈钢,可插入性方面得到保證

類型

Java接口(以及Java抽象類)用來聲明一個新的類型

Java設計師應當主要使用Java接口和抽象Java類將軟件單位與內部和外部耦合起來痹仙。換而言之,應當使用Java接口和抽象Java類而不是具體類進行變量的類型聲明殉了,參量的類型聲明开仰,方法的返回類型聲明,以及參數(shù)類型的轉換等。當然抖所,一個更好的做法是僅僅使用Java接口梨州,而不要使用抽象Java類來做到上面這些。

在理想的情況下田轧,一個具體Java類應當只 實現(xiàn)Java接口和抽象Java類中聲明過的方法暴匠,而不應當給出多余的方法


我好累,今天就寫到這里吧

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末傻粘,一起剝皮案震驚了整個濱河市每窖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弦悉,老刑警劉巖窒典,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稽莉,居然都是意外死亡瀑志,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門污秆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劈猪,“玉大人,你說我怎么就攤上這事良拼≌降茫” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵庸推,是天一觀的道長常侦。 經(jīng)常有香客問我,道長贬媒,這世上最難降的妖魔是什么聋亡? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮际乘,結果婚禮上坡倔,老公的妹妹穿的比我還像新娘。我一直安慰自己蚓庭,他們只是感情好致讥,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著器赞,像睡著了一般垢袱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上港柜,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天请契,我揣著相機與錄音咳榜,去河邊找鬼。 笑死爽锥,一個胖子當著我的面吹牛涌韩,可吹牛的內容都是我干的。 我是一名探鬼主播氯夷,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼臣樱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腮考?” 一聲冷哼從身側響起雇毫,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踩蔚,沒想到半個月后棚放,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡馅闽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年飘蚯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片福也。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡局骤,死狀恐怖,靈堂內的尸體忽然破棺而出拟杉,到底是詐尸還是另有隱情庄涡,我是刑警寧澤量承,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布搬设,位于F島的核電站,受9級特大地震影響撕捍,放射性物質發(fā)生泄漏拿穴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一忧风、第九天 我趴在偏房一處隱蔽的房頂上張望默色。 院中可真熱鬧,春花似錦狮腿、人聲如沸腿宰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吃度。三九已至,卻和暖如春贴硫,著一層夾襖步出監(jiān)牢的瞬間戚炫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工榴芳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蕉堰,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓汛兜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子法精,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容

  • 一亿虽、抽象類 1、抽象類含義的概括: 當多個類出現(xiàn)相同功能時苞也,但功能主體不同洛勉,這樣可以向上抽取,抽取時只抽取功能定義...
    玉圣閱讀 836評論 0 6
  • 今日任務: 1如迟,能夠獨立使用抽象類 2收毫,能夠獨立使用多態(tài) 3,能夠獨立使用接口 4殷勘,能夠理解適配器設計模式 1. ...
    Villain丶Cc閱讀 1,366評論 0 17
  • 第03天java面向對象 今日內容介紹 ·接口 ·匿名對象&final ·多態(tài) ·接口 1.接口的概述 接口是功能...
    chcvn閱讀 458評論 0 0
  • 一朵花 開在寂靜的午夜 無人聞到她的芬芳 無人見到她的憂傷 有人且問 為何不開放在陽光下此再? 花說 這世界太喧囂 只...
    芷伈芷語閱讀 199評論 0 0
  • 2014年4月25日由中國最高端的人力資源會員組織伯樂會主辦的招聘創(chuàng)新國際論壇在上海浦東的麗思卡爾頓酒店順利召開。...
    云才閱讀 159評論 0 0