Java介面與抽象類的區別

2021-08-29 01:24:19 字數 1010 閱讀 1152

筆試面試都愛問的乙個問題,介面與抽象類的相同點、不同點以及之間的繼承。

介面:(1)介面中所有方法為抽象方法;

(2)介面所有成員變數為static final型別;

(3)介面所有成員、方法為public。

抽象類:

(1)只要包含乙個抽象方法的類即為抽象類;

(2)抽象方法不能有方法體;

(3)抽象類不能例項化;

(4)子類繼承抽象類時必須為抽象類的抽象方法提供實現,否則子類也要宣告為抽象類。

(1)介面和抽象類均不能例項化;

(2)介面實現類或抽象類的子類都要實現了介面的方法或抽象類抽象方法後才能被例項化。

(1)介面只有定義,不能包含實現;抽象類可以有定義也可以有實現,即抽象類中可以包含方法的實現;

(2)介面使用implements,抽象類使用extends;

(3)介面強調has-a關係,即包含關係;抽象類強調is-a關係,即所屬關係;

(4)介面的所有變數預設為public static final,即只能有靜態不能被修改的成員變數,且必須初始化;抽象類中可以有資料成員變數,預設為default;

(5)介面的所有方法預設修飾符public abstract,且不能包含方法的實現;抽象類中即可以有抽象方法,也可以有非抽象方法,抽象方法不能用private、static等修飾符修飾,且不帶方法體;

(6)介面用於功能的實現;抽象類用於公共類,不適用於**修改。

介面:(1)介面能夠繼承介面,並且能夠繼承多個介面;

(2)介面不能繼承抽象類或非抽象類。

非抽象類:

(1)非抽象普通類只能繼承乙個類,但可以實現多個介面,並且需提供介面方法的實現;

(2)非抽象普通類可繼承乙個抽象類,並且需要對抽象類中的抽象方法提供實現。

抽象類:

(1)抽象類可以實現多個介面,並且可以不用提供介面方法的實現;

(2)抽象類可以繼承抽象類,並且可以不用對父抽象類的抽象方法提供實現;

(3)抽象類可以繼承非抽象普通類,並且可以重寫父類方法。

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...

java抽象類與介面的區別

含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class abstract class 裡的方法不必是抽象的,抽象類中定義抽象方法必須放在具體子類中實現,所以呀,不能有抽象的構造方法或抽象的靜態方法,...

JAVA抽象類與介面的區別

抽象類和介面的區別 抽象類是乙個模板,類的模板,而介面是乙個標準。序號區別點 抽象類介面1定義 包含抽象方法的類就是抽象類 抽象方法和全域性常量的集合2組成 構造方法,抽象方法,普通方法 常量和抽象方法 常量,變數3使用 子類繼承抽象類 extends 子類實現介面 implements 關鍵字 a...