1. 程式人生 > >抽象方法(abstract class)與介面(interface)比較

抽象方法(abstract class)與介面(interface)比較

如果一個類中包含抽象方法,那麼這個類就是抽象類

介面就是指一個方法的集合,介面中的所有方法都沒有方法體,在Java中,介面通過關鍵字interface來實現的。

相同點:

1、都不能被例項化。

2、介面的實現類或抽象類的子類都只有實現了介面或抽象類中的方法後才能例項化。

不同點:

1、介面只有定義,其方法不能在介面中實現,只有實現介面的類才能實現介面的方法,而抽象類可以有定義與實現,即其方法可以在抽象類中實現。

2、介面需要實現,但抽象類只能被繼承。

3、介面強調特定功能的實現,而抽象類強調所屬關係。

4、介面中定義的成員變數預設為public static final,只能夠有靜態的不能被修改的資料成員,而且必須給其賦初值,其所有的成員方法都是Public、abstract的

而且只能被這兩個關鍵字修飾。

而抽象類可以有自己的資料成員變數,也可以有非抽象的成員方法,而且,抽象類中的成員變數預設為default,當然也可以有private /protected/public。抽象類的抽象方法前不能用private/static/synchronized/native等訪問修飾符修飾,同時方法必須以分好結尾,並且不能花括號。

下列關於介面的定義中,正確的是()

A、void method();       B 、public double method();

C 、public final double method();     D、static void method(double dl);

E、 protected void method(double d);   F、int a;

G 、int b=1;

答案為: A、B、G