java基礎回顧之抽象類與接口的比較

在這裏插入圖片描述
,抽象類含有無參構造方法的,在項目中這樣查看:
在這裏插入圖片描述
通過 javap -c class文件,可以查到。
在這裏插入圖片描述

接口:
在這裏插入圖片描述
在這裏插入圖片描述
項目升級的時候,如果接口增加功能,那麼不能加抽象方法,加了會使所有的實現類報錯。加默認方法就可以了。實現類不會報錯。實現類可以實現接口的默認方法增加功能。

在這裏插入圖片描述

總結 : 抽象類與接口的異同點
相同點:
1)都可以定義抽象方法
2)都不能實例化對象
3)都可以定義public static final常量 , public static方法
4)定義的抽象方法需要被重寫
不同點:
1)定義方式不同
抽象類使用 abstract class 定義
接口使用 interface定義
2) 內容不同
抽象類中除了抽象方法外, 還有構造方法等普通類有的所有成員
接口中除了抽象方法外, 可以定義default修飾的方法, 沒有構造方法
3)使用方式不同
抽象類一般作爲其他類的父類存在, 需要被extends繼承
接口需要類通過implements實現
4)類只支持單繼承, 接口可以支持多繼承
5)應用場景不同
如果僅僅是爲了 擴展類的功能, 優先選擇使用接口
抽象類可以描述類之間的層次關係; 如果除了功能擴展外,還需要保存數據選擇抽象類; 抽象類可以約束所有的子類都具有某個功能.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章