抽象類特點:
1.抽象類中可以構造方法
2.抽象類中可以存在普通屬性,方法,靜態屬性和方法。
3.抽象類中可以存在抽象方法。
4.如果乙個類中有乙個抽象方法,那麼當前類一定是抽象類;抽象類中不一定有抽象方法。
5.抽象類中的抽象方法,需要有子類實現,如果子類不實現,則子類也需要定義為抽象的。
介面1.在介面中只有方法的宣告,沒有方法體。
2.在介面中只有常量,因為定義的變數,在編譯的時候都會預設加上
public static final
3.在介面中的方法,永遠都被public來修飾。
4.介面中沒有構造方法,也不能例項化介面的物件。
5.介面可以實現多繼承
6.介面中定義的方法都需要有實現類來實現,如果實現類不能實現介面中的所有方法
7.則實現類定義為抽象類。
含有abstract修飾符的class即為抽象類,abstract類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class
類中定義抽象方法必須在具體
(concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義為abstract型別。
介面(inte***ce)可以說成是抽象類的一種特例,介面中的所有方法都必須是抽象的。介面中的方法定義預設為public abstract型別,介面中的成員變數型別預設為public static final。
下面比較一下兩者的語法區別:
1.抽象類可以有構造方法,介面中不能有構造方法。
2.抽象類中可以有普通成員變數,介面中沒有普通成員變數
3.抽象類中可以包含非抽象的普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的普通方法。
4. 抽象類中的抽象方法的訪問型別可以是public,protected和(預設型別,雖然
eclipse下不報錯,但應該也不行),但介面中的抽象方法只能是public型別的,並且預設即為public abstract型別。
5. 抽象類中可以包含靜態方法,介面中不能包含靜態方法
6. 抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問型別可以任意,但介面中定義的變數只能是public static final型別,並且預設即為public static final型別。
java中抽象類和介面的區別
1 概念 抽象類 abstract class 宣告方法的存在但不去實現它的類叫做抽象類。抽象類中可以有實現了的方法,也可以沒有實現了的方法 抽象類中可以沒有抽象的方法,但有抽象方法的類一定是抽象類。抽象類與普通類最大的區別是它不能被直接例項化,只能通過子類間接例項化。介面 inte ce 是抽象類...
JAVA 中 抽象類和介面的區別
含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class abstract class 裡的方法不必是抽象的,抽象來中定義抽象方法必須放在具體子類中實現,所以呀,不能有抽象的構造方法或抽象的靜態方法,...
java中抽象類和介面的區別
在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。抽象類往往用來表徵我們在對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象,我們不能把它...