2022-04-17

Java中的接口(什么是接口击罪,接口的好處哲嘲,具體的使用)

1.什么是接口?

官方概述:

在java語言中媳禁,接口不是類眠副,而是對類的一組需求描述,這些類要遵從接口描述的統(tǒng)一格式進行定義竣稽。

這種技術(shù)主要用來描述類具有什么功能囱怕,而并不給出每個類的具體實現(xiàn)。

Balabalabala……..

博主概述:接口是類的行為的抽象概述毫别。

你的概述:用一句你自己能聽懂的話娃弓,將接口的概念概括一下,然后記在心里岛宦。(不必太復(fù)雜台丛,不必特準確,重點是你自己一定要理解這句話@巍)

舉個栗子:

在項目開發(fā)MVC分層的結(jié)構(gòu)中挽霉,在Service層,我們常常使用到接口的方式变汪。

例如:我們編寫一個關(guān)于訂單的Service侠坎;

步驟是:先創(chuàng)建一個接口,再編寫其接口實現(xiàn)類疫衩。

在定義接口方法時硅蹦,將各種“行為”抽象成方法荣德,此處:創(chuàng)建,查詢童芹,取消涮瞻,完結(jié),支付均是行為假褪!

public interface OrderService {

? ? /**

? ? * 創(chuàng)建訂單

? ? */

? ? OrderDTO create(OrderDTO orderDTO);

? ? /**

? ? * 查詢單個訂單

? ? */

? ? OrderDTO findOne(String orderId);

? ? /**

? ? * 查詢訂單列表

? ? */

? ? Page<OrderDTO> findList(String openId, Pageable pageable);

? ? /**

? ? * 取消訂單

? ? */

? ? OrderDTO cancel(OrderDTO orderDTO);

? ? /**

? ? * 完結(jié)訂單

? ? */

? ? OrderDTO finish(OrderDTO orderDTO);

? ? /**

? ? * 支付訂單

? ? */

? ? OrderDTO paid(OrderDTO orderDTO);

}

所以說署咽,我們已經(jīng)知道了我們將要去干什么,但至于怎么干生音,具體的怎么做宁否,我們交給接口的實現(xiàn)類去做!

2.使用接口的好處

可擴展性好

? ? ? 比如項目需要做一個訂單模塊缀遍,首先后端leader創(chuàng)建了一個訂單的接口(定義了規(guī)范)慕匠,然后把該接口具體怎么實現(xiàn)交給了小a來做,小a開始進行實現(xiàn)類的編寫(接口的第一個實現(xiàn)類)域醇,但是過了很久以后台谊,后端leader覺得小a寫的這個實現(xiàn)類不太滿意,想找人重新寫訂單模塊譬挚。那么此時锅铅,接口的可擴展性就體現(xiàn)了出來,領(lǐng)導(dǎo)找到了小b减宣,而小b只需要根據(jù)該接口重新創(chuàng)建一個類(接口的第二個實現(xiàn)類)盐须,并將該訂單接口定義的所有方法重新實現(xiàn)一遍,就達到了重寫訂單模塊的目的漆腌。而項目其他部分對訂單模塊的引用并不受到影響贼邓,因為其他模塊對訂單模塊引用的是“接口”,而不是具體的實現(xiàn)類闷尿。

舉個栗子:

Service層:

訂單接口 :OrderService

訂單接口實現(xiàn)類 : OrderServiceImpl

Controller層:

private OrderService orderService;(對Service層的調(diào)用)

此處注意:聲明的是接口立帖,而不是其實現(xiàn)類,你理解了嗎悠砚?

接口的多實現(xiàn)是Java多態(tài)的一種表現(xiàn);

3.使用接口的注意點

自上而下分析(我個人的一個小技巧堂飞,先考慮是否是類和其關(guān)鍵字灌旧,然后按照類的組成部分,自上而下:構(gòu)造器绰筛,域枢泰,方法,然后與其相關(guān)的類;按照這種規(guī)律來進行分析铝噩,屢試不爽)

1.接口不是類

2.接口關(guān)鍵字:interface? ? 類實現(xiàn)接口關(guān)鍵字:implements

3.接口沒有構(gòu)造方法

4.接口不能被實例化

5.接口的成員變量都是public,static,final修飾(默認)

6.接口的方法都是public,abstract修飾(默認)(1.8以后方法可以加static關(guān)鍵字衡蚂,但必須有方法體)

7.接口的實現(xiàn)類必須實現(xiàn)接口所有的方法

4.接口與抽象類的區(qū)別?

依舊自上而下分析

1.抽象類是類,接口不是類毛甲。(感覺自己說了句廢話)

2.抽象類的關(guān)鍵字是abstract修飾年叮,接口的關(guān)鍵字是interface修飾。(感覺自己又說了句廢話)

3.抽象類有構(gòu)造方法玻募,接口沒有構(gòu)造方法只损。(但兩者均不能被實例化,用我自己的話來概括就是七咧,兩者都是抽象派跃惫,沒有具體的實際行為,所以不允許它們實例化0啊)

4.抽象類的成員變量修飾隨便(public,private,protected等等)爆存,接口的成員變量必須是public,static,final修飾(默認)(可以用來做定義常量的類)

5.抽象類的方法可以是普通方法,也可以是抽象方法蝗砾。接口的方法必須是public,abstract修飾(默認)(1.8以后方法可以加static關(guān)鍵字先较,但必須有方法體)

6.抽象類的所有方法需要被子類全部實現(xiàn)(有一種情況例外,除非子類也是抽象類遥诉,其實就是把實現(xiàn)的責(zé)任又傳遞了下去)拇泣;

 接口的所有方法必須被它的實現(xiàn)類全部實現(xiàn)(沒有例外)

7.最重要的一點,此處畫重點矮锈,抽象類是單繼承霉翔,接口是多實現(xiàn);

接口與抽象類的使用場景:

  抽象類是對本質(zhì)屬性的抽象;

    舉個栗子:

    父抽象類:人? ? ? ? ? 子類:男人

  ? 接口是對行為的抽象苞笨;

    舉個栗子:

    接口中的一個方法:創(chuàng)建訂單()? ? 實現(xiàn)類1: 第一種具體的創(chuàng)建過程? ? ? 實現(xiàn)類2:第二種具體的創(chuàng)建過程

如果此時的你债朵,還是不太明白接口到底是什么,那我再舉一個可能不太恰當?shù)睦樱?/p>

接口瀑凝,顧名思義序芦,它是個口,hahh,現(xiàn)在粤咪,低下你的頭谚中,把你電腦的USB插入口想象成是一個接口,這個接口可以插入三星的U盤寥枝,可以插入閃迪的U盤宪塔,可以插入8g的,也可以插入16g的囊拜,但是有一個重要前提:這些U盤需要滿足這個接口所定義的規(guī)范某筐,而接口的另一端。電腦內(nèi)部直接對接的是接口冠跷,而不是這些U盤(接口實現(xiàn)類)南誊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末身诺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子抄囚,更是在濱河造成了極大的恐慌霉赡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怠苔,死亡現(xiàn)場離奇詭異同廉,居然都是意外死亡,警方通過查閱死者的電腦和手機柑司,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門迫肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人攒驰,你說我怎么就攤上這事蟆湖。” “怎么了玻粪?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵隅津,是天一觀的道長。 經(jīng)常有香客問我劲室,道長伦仍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任很洋,我火速辦了婚禮充蓝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喉磁。我一直安慰自己谓苟,他們只是感情好,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布协怒。 她就那樣靜靜地躺著涝焙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪孕暇。 梳的紋絲不亂的頭發(fā)上仑撞,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機與錄音妖滔,去河邊找鬼派草。 笑死,一個胖子當著我的面吹牛铛楣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播艺普,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼簸州,長吁一口氣:“原來是場噩夢啊……” “哼鉴竭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岸浑,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤搏存,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后矢洲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體璧眠,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年读虏,在試婚紗的時候發(fā)現(xiàn)自己被綠了责静。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盖桥,死狀恐怖灾螃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揩徊,我是刑警寧澤腰鬼,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站塑荒,受9級特大地震影響熄赡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜齿税,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一彼硫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧偎窘,春花似錦乌助、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仆葡,卻和暖如春赏参,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沿盅。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工把篓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腰涧。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓韧掩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窖铡。 傳聞我的和親對象是個殘疾皇子疗锐,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容