抽象類與接口

Fighting.jpg

抽象方法和抽象類特點(diǎn)

抽象方法和抽象類必須使用abstract修飾符來定義,有抽象方法的類只能被定義為抽象類宋渔,抽象類中可以沒有抽象方法。

  • 抽象類必須使用abstract修飾符來修飾,抽象方法也必須使用abstract修飾符來修飾,抽象方法不能有方法體馋缅。

  • 抽象類不能被實(shí)例化

  • 抽象類可以包含成員變量、方法绢淀、構(gòu)造器萤悴、初始化代碼塊、內(nèi)部類皆的,因?yàn)椴荒鼙粚?shí)例化覆履,所有這些都是被子類調(diào)用

  • 含抽象方法的類,只能被定義為抽象類

  • 抽象方法必須為public或者protected(如果為private,則不能被子類繼承硝全,子類無法實(shí)現(xiàn)該方法就沒有其價(jià)值)怪嫌,缺省的情況下默認(rèn)為public

  • abstract 不能修飾成員變量,不能用于修飾局部變量柳沙,即沒有抽象變量岩灭、抽象成員變量說法;也不能修飾構(gòu)造器赂鲤、沒有抽象構(gòu)造器噪径,抽象類中的構(gòu)造器只能時(shí)普通的構(gòu)造器

  • 使用abstract修飾類時(shí),即表明這個(gè)類只能被繼承数初。當(dāng)使用abstract修飾方法時(shí)找爱,表明這個(gè)方法必須由子類提供實(shí)現(xiàn)。而final修飾的類不能被繼承泡孩,final修飾的方法不能被重寫车摄。因此final和abstract是不能夠同時(shí)使用的。

  • static修飾一個(gè)方法時(shí)仑鸥,表明這個(gè)方法屬于該類本身吮播,即通過類就可調(diào)用該方法,但該方法被定義為抽象方法眼俊,即通過該類不能調(diào)用沒有方法體的方法意狠。 但是static和abstract可以修飾內(nèi)部類

抽象類的作用

  • 抽象父類可以只定義需要使用的某些方法,把不能實(shí)現(xiàn)的部分抽象成抽象方法疮胖,留給其子類實(shí)現(xiàn)
  • 父類總可能包含需要調(diào)用其他系列方法的方法环戈,這些被調(diào)方法既可以有父類實(shí)現(xiàn),也可以由子類實(shí)現(xiàn)澎灸。

接口

接口定義基本語法

[修飾符] interface 接口名 extends 父接口1院塞,父接口2
{
    零個(gè)到多個(gè)常量定義...     靜態(tài)常量 
    零個(gè)到多個(gè)抽象方法定義...  
    零個(gè)到多個(gè)內(nèi)部類、接口性昭、枚舉     默認(rèn)采用了public static
    零個(gè)到多個(gè)默認(rèn)方法或類方法定義
}

==Java 8接口==

  • 允許在接口中定義默認(rèn)方法拦止,但是必須使用default修飾,但不能使用static修飾巩梢, 總是使用public修飾的
  • 允許在接口中定義類方法创泄,但必須使用static修飾艺玲,不能使用default修飾
  • 接口類的成員變量默認(rèn)是使用public static final 修飾的

接口和抽象類的異同點(diǎn)

==相同點(diǎn)==

  • 接口和抽象類都不能被實(shí)例化括蝠,位于繼承樹的頂端,用于被其他類實(shí)現(xiàn)和繼承
  • 接口和抽象類都可以包含抽象方法饭聚,實(shí)現(xiàn)接口或繼承抽象類的普通子類都必須實(shí)現(xiàn)這些抽象方法

==差別==

  • 設(shè)計(jì)目的上
    • 接口作為系統(tǒng)與外界交互的窗口忌警,接口體現(xiàn)的是一種規(guī)范,對(duì)于接口的實(shí)現(xiàn)者而言,接口規(guī)定了實(shí)現(xiàn)者必須向外提供哪些服務(wù)(以方法的形式來提供)法绵;對(duì)于接口的調(diào)用者來說箕速,接口規(guī)定了調(diào)用者可以調(diào)用哪些服務(wù),以及如何調(diào)用這些服務(wù)朋譬; 接口類制定了系統(tǒng)各模塊應(yīng)該遵循的標(biāo)準(zhǔn)盐茎,接口不應(yīng)該經(jīng)常被改變。一旦被改變徙赢,對(duì)整個(gè)系統(tǒng)都會(huì)有影響
    • 抽象類作為系統(tǒng)中多個(gè)子類的共同父類字柠,體現(xiàn)的是一種模板式設(shè)計(jì)。
  • 一個(gè)類最多只能有一個(gè)直接父類狡赐,包括抽象類窑业;但是可以直接實(shí)現(xiàn)多個(gè)接口
  • 接口里面只能定義靜態(tài)常量,不能定義普通成員變量枕屉;抽象類中既能蒂尼靜態(tài)常量又能定義普通成員變量
  • 接口里面不能有初始化代碼塊常柄;但是抽象類完全可以包含初始化塊
  • 接口里面只能包含抽象方法、靜態(tài)方法搀擂、默認(rèn)方法西潘,不能為普通方法提供方法實(shí)現(xiàn);抽象類則完全可以包含普通方法
  • 接口里不包含構(gòu)造器哨颂;抽象類可以包含構(gòu)造器秸架,抽象類里的構(gòu)造器并不是用于創(chuàng)建對(duì)象,而是讓其子類調(diào)用這些構(gòu)造器來完成抽象類完成屬于抽象類的初始化操作

后記

參考《瘋狂Java講義》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咆蒿,一起剝皮案震驚了整個(gè)濱河市东抹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沃测,老刑警劉巖缭黔,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒂破,居然都是意外死亡馏谨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門附迷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惧互,“玉大人,你說我怎么就攤上這事喇伯『袄埽” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵稻据,是天一觀的道長(zhǎng)艾猜。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么匆赃? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任淤毛,我火速辦了婚禮,結(jié)果婚禮上算柳,老公的妹妹穿的比我還像新娘低淡。我一直安慰自己,他們只是感情好瞬项,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布查牌。 她就那樣靜靜地躺著,像睡著了一般滥壕。 火紅的嫁衣襯著肌膚如雪纸颜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天绎橘,我揣著相機(jī)與錄音胁孙,去河邊找鬼。 笑死称鳞,一個(gè)胖子當(dāng)著我的面吹牛涮较,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冈止,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼狂票,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了熙暴?” 一聲冷哼從身側(cè)響起闺属,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎周霉,沒想到半個(gè)月后掂器,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俱箱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年国瓮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狞谱。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乃摹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跟衅,到底是詐尸還是另有隱情孵睬,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布与斤,位于F島的核電站肪康,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏撩穿。R本人自食惡果不足惜磷支,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望食寡。 院中可真熱鬧雾狈,春花似錦、人聲如沸抵皱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呻畸。三九已至移盆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伤为,已是汗流浹背咒循。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工舶吗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留薯鼠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓枉长,卻偏偏與公主長(zhǎng)得像位衩,于是被迫代替她去往敵國(guó)和親裆蒸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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

  • 你很清楚的知道什么時(shí)候用抽象類糖驴,什么時(shí)候用接口么僚祷?p.s. 多文字預(yù)警! 1 抽象類和接口簡(jiǎn)介 1.1 抽象類 ...
    Sharember閱讀 2,351評(píng)論 9 55
  • 一、抽象類 1跷睦、抽象類含義的概括: 當(dāng)多個(gè)類出現(xiàn)相同功能時(shí)筷弦,但功能主體不同,這樣可以向上抽取抑诸,抽取時(shí)只抽取功能定義...
    玉圣閱讀 830評(píng)論 0 6
  • 3.1 抽象類 抽象類是從多個(gè)類中抽象出來的模板烂琴。 抽象方法和抽象類的規(guī)則如下: - 抽象類必...
    王毅巽閱讀 324評(píng)論 0 0
  • 對(duì)于面向?qū)ο缶幊虂碚f,抽象是它的一大特征之一蜕乡。在Java中奸绷,可以通過兩種形式來體現(xiàn)OOP的抽象:接口和抽象類。接口...
    Q南南南Q閱讀 370評(píng)論 0 3
  • 2017.1.10. 不得不說层玲,命運(yùn)這種東西号醉,是存在的反症。也許,有些事情早就已定畔派。
    reviewliquor閱讀 116評(píng)論 0 0