1. 程式人生 > >抽象類和介面 概念

抽象類和介面 概念

抽象類不能被例項化,但可以建立一個引用變數,其型別是一個抽象類,指向非抽象的子類例項

抽象類與抽象方法的使用:

(1)抽象類中可以沒有抽象方法,單包含了抽象方法的類必須被定義為抽象類

(2)如果子類沒有實現父類的所有抽象方法,子類不許被定義為抽象類

(3)沒有抽象構造方法,也沒有抽象靜態方法

(4)抽象類中可以有非抽象的構造方法,建立子類的例項時可以被呼叫 

介面:public interface MyInterface{}

接口裡的方法全部都是公共的抽象方法,接口裡的變數都是靜態常量(publicstatic final)

介面特性:

(1)介面不可以被例項化

(2)實現類(就和繼承一樣,實現介面的類就是實現類)必須實現介面的所有方法

(3)實現類可以實現多個介面    implements、多個介面使用用逗號隔開

概念性的介面,系統對外提供的所有服務

實在的介面,interface

介面使用:

介面中的成員變數

    預設都是public abstract final的,必須顯示初始化

介面中的方法:

    預設都是public abstract的

    除了成員變數和構造方法,不能包含其他

介面沒有構造方法,不能被例項化 

一個介面不能實現另一個介面,但可以繼承多個其他介面

一個類必須實現介面抽象方法(implements),除非這個類也是抽象類

抽象類VS介面

相同點                                 不同點
    
(1)代表系統的抽象層             (1)在抽象類中可以為部分方法提供預設實現,而介面中只能包含抽象方法  

(2)都不能被例項化               (2)一個類只能繼承一個直接的父類,但可以實現多個介面

(3)都能包含抽象方法             (3)已存在的繼承樹,可以方便的抽取介面,但是抽取抽象類不容易