在面向對象的概念中,全部的對象都是經過類來描繪的,可是反過來,並非全部的類都是用來描繪對象的,若是一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。函數
在Java中經過abstract關鍵字定義抽象類,以下:code
[訪問修飾符] abstract class 類名{ .... }
抽象類除了不能實例化對象以外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類同樣。對象
因爲抽象類不能實例化對象,因此抽象類必須被繼承,才能被使用。抽象類不能使用final修飾。繼承
只包含一個方法名,而沒有方法體,同時使用abstract關鍵字修飾的方法編譯
abstract class 類名{ .... public abstract 返回值 函數名(參數列表); }
抽象方法必須爲public或者protected(由於若是爲private,則不能被子類繼承,子類便沒法實現該方法),缺省狀況下默認爲public。class
聲明抽象方法會形成如下兩個結果:變量