抽象類和接口區(qū)別

一.抽象類和接口區(qū)別:

抽象類由abstract關(guān)鍵字來修飾,接口由interface關(guān)鍵字來修飾。

抽象類中除了有抽象方法外,也可以有數(shù)據(jù)成員和非抽象方法;

而接口中所有的方法必須都是抽象的(public abstract類型),接口中也可以定義數(shù)據(jù)成員,但必須是常量(public static final)。

抽象類可以有構(gòu)造方法,接口不能有構(gòu)造方法

抽象類速度比接口速度要快,接口是稍微有點慢的,因為它需要時間去尋找在類中實現(xiàn)的方法。

與正常Java類的區(qū)別除了你不能實例化抽象類之外,它和普通Java類沒有任何區(qū)別;接口是完全不同的類型


/*

參考資源http://blog.csdn.net/wei_zhi/article/details/52736350

https://www.cnblogs.com/jizuiku/p/7466609.html

*1.如果一個類中含有抽象方法(abstract),你還不定義為抽象類abstract,必然報錯

*2.抽象方法中沒有方法體

*3.抽象類中可以不含有抽象方法

*4.抽象類無法直接進(jìn)行實例化操作,需要依靠子類采用向上轉(zhuǎn)型的方式處理 ->TestDemo

*5.抽象類中方法只含有public,protected,不能含有private,不寫默認(rèn)為public

*6如果抽象類中方法用的是protected,則子類可以重寫為public或protected;如果抽象類中方法用的是public,則子類可以重寫為public

*7.子類(如果不是抽象類)則必須覆寫抽象類之中的全部抽象方法(如果子類沒有實現(xiàn)父類的抽象方法,則必須將子類也定義為為abstract類。);

*8.抽象類可以有構(gòu)造函數(shù),子類必須也有構(gòu)造函數(shù)并且如果繼承有參數(shù)的構(gòu)造函數(shù)不用super則會報錯

*9.抽象類可以用final聲明么?

不能,因為抽象類必須有子類,而final定義的類不能有子類;

*10.抽象類可以有成員變量,當(dāng)然public和protected,不能是private,final,而且可以是靜態(tài)static

*11.抽象類方法也可以是static

* */



/*

在Java中,一個抽象類只能繼承一個抽象類,但一個接口卻可以使用extends關(guān)鍵字同時繼承多個接口(但接口不能繼承抽象類)。

由此可見,從繼承關(guān)系來說接口的限制比抽象類少:

(1)一個抽象類只能繼承一個抽象父類,而接口可以繼承多個接口;

(2)一個子類只能繼承一個抽象類,卻可以實現(xiàn)多個接口(在Java中,接口的主要功能是解決單繼承局限問題)

*/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從一個副駕駛一直渴望著有自己的一輛車,我想每個熱血或者溫?zé)岬难纳倌甓紩蓄愃频那楣?jié)吧。 特別是在節(jié)奏特別快的生活...
    南方小政閱讀 558評論 0 0
  • 茶是悅?cè)?,更是悅己?從認(rèn)識一片樹葉開始,慢慢學(xué)會優(yōu)雅地面對生活,學(xué)會在紛亂的世間給自己的心靈留一片凈地,去看、去...
    秋風(fēng)玲玎閱讀 234評論 1 2
  • 男人總要有一個女兒,才能感受那萬千柔情。那古代的才子要用怎樣的筆觸寫自己的女兒呢?這是好久前想做的一個選題,因著掃...
    齊嬰寧閱讀 10,554評論 7 32
  • 利潤:銷售收入與成本的差額 銷售收入:菜品銷售收入+商品銷售收入+外賣銷售收入+其他收入
    愛上小炒閱讀 464評論 0 0

友情鏈接更多精彩內(nèi)容