1. 程式人生 > >Java中抽象類和介面的區別?

Java中抽象類和介面的區別?

抽象類

抽象類必須在類前加上abstract表示這是一個抽象類,抽象類的抽象方法不需要實現,他只是一種宣告,所以也就無法建立抽象類的物件。一個類繼承抽象類必須實現抽象類中的抽象方法,如果不實現這個抽象方法,那麼這個類就必須是抽象的。

介面

介面是Java中的interface,介面中變數都會被隱式指定為public static final變數,方法會被指定為public abstract方法,介面中的方法是抽象方法,不能具體實現,介面的實現必須重寫所有的抽象方法,一般情況下不在介面中定義變數。

抽象類和介面的區別:

1.在Java中抽象類表示的是一種繼承關係,一個只能繼承一個父類,但一個類可以實現多個介面

2.抽象類中有自己的成員變數,可以被修改,也有非抽象的成員方法,如靜態方法;而在介面中,只有靜態的不能被修改的成員變數(static final),必須賦初值,不可以被子類修改,不過在介面中一般不定義成員變數,介面中成員方法必須是抽象的(abstract);

3.,實現抽象類和介面必須實其中所有的方法,如果這個類沒實現抽象類中的所有抽象方法,則這個類是一個抽象類,實現介面必須實現所有的抽象方法,介面也可以繼承介面,此時就可以不實現父類中的抽象方法。