【本節目标】
通過閱讀本節内容,你将進一步了解抽象類和接口的相關概念,并能夠在實際應用中準确判斷使用抽象類或接口。
抽象類與接口的差別
在實際的開發之中可以發現抽象類和接口的定義形式是非常相似的,這一點從JDK1.8開始就特别明顯了,因為在JDK1.8裡面接口也可以定義default或static方法了,但是這兩者依然是有着明顯的定義差別的。
No. | 差別 | 抽象類 | 接口 |
1 | 定義 | abstract class 抽象類名稱{} | interface 接口名稱{} |
2 | 組成 | 構造、普通方法、靜态方法、全局常量、普通成員、static方法 | 抽象方法、全局常量、普通方法、static方法 |
3 | 權限 | 可以使用各種權限定義 | 隻能夠使用public |
4 | 子類使用 | 子類通過extends關鍵字可以繼承一個抽象類 | 子類使用implements關鍵字可以實作多個接口 |
5 | 兩者關系 | 抽象類可以實作若幹接口 | 接口不允許繼承抽象類,但是允許繼承多個父接口 |
6 | 使用 | 1、抽象類或接口必須定義子類; 2、子類一定要覆寫抽象類或接口中的全部抽象方法; 3、 通過子類的向上轉型實作抽象類或接口對象執行個體化。 |
當抽象類和接口都可以使用的情況下,優先要考慮接口,因為接口可以避免子類的單繼承局限。
另外從一個正常的設計角度而言,也需要先從接口來進行項目的整體設計。
圖一 列舉各個結構的設計關系
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:掌握接口,從這三則案例開始! | 帶你學《Java面向對象程式設計》之六十二 更多Java面向對象程式設計文章檢視此處