ü 含有abstract修飾符的class即爲抽象類,abstract類不能創建實例對象,含有abstract方法的類必須定義爲abstract class,abstract class類中的方法不必是抽象的,abstract定義的抽象方法必須在子類中實現,所以不能有抽象構造方法或抽象靜態方法,如果子類沒有實現抽象父類的所有抽象方法,那麼子類也必須定義爲abstract類型;
ü Interface可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的,接口中的方法默認定義爲public abstract類型,接口中的成員變量類型默認爲public static final
下面比較兩者的區別:
ü 抽象類可以有構造方法,接口中不能有構造方法;
ü 抽象類中可以有普通成員變量,接口中沒有普通成員變量;
ü 抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法;
ü 抽象類中方法的訪問類型可以是public,protected和(默認類型,雖然eclipse下不報錯,但應該也不行),但接口的抽象方法只能是public類型的,並且默認即爲public abstract類型;
ü 抽象類中可以包含靜態方法,接口中不能包含靜態方法;
ü 抽象類和接口中都可以包含靜態成員變量;
ü 一個類可以實現多個接口,但只能繼承一個抽象類;
ü 抽象類可以實現接口,也可以繼承具體的類;但是接口只能繼承(extends)接口,不能實現接口和繼承具體的類;