介面與抽象類的異同
阿新 • • 發佈:2021-11-23
介面與抽象類的異同
介面與抽象類的關係
-
相同點
- 都不能被例項化
-
不同點
-
繼承
- 介面與介面之間可以繼承,並且可以多繼承,同時Java類可以實現多個介面
- 抽象類則為單繼承
-
成員
-
介面:JDK 7 : 只能定義全域性常量(public static final )和抽象方法(public abstract),可省略不寫
JDK 8 : 除了定義全域性常量和抽象方法外,還可以定義靜態方法、預設方法(default)
-
抽象類中成員變數預設default,可在子類中被重新定義,也可被重新賦值。
-
-
構造器
- 介面: 介面中不能定義構造器,意味著介面不能例項化
- 抽象類中一定有構造器,便於子類例項化時使用
-
修飾
- abstract: 可以用來修飾的結構: 類、方法
- 而介面和類是並列的兩個結構
-
例項化
- 如果實現類覆蓋了介面中的所有抽象方法,則此類就可以例項化
- 如果實現類沒有覆蓋了抽象類中的所有抽象方法,則此類就仍為一個抽象類,反之,可以例項化
-
理念
- 介面,實際上就是一種規範,強調特定功能的實現
- 而繼承抽象類強調所屬關係。
-