抽象類和普通類、抽象類和接口的區別

包含抽象方法的類稱爲抽象類,但並不意味着抽象類中只能有抽象方法,它和普通類一樣,同樣可以擁有成員變量和普通的成員方法。
【注意】抽象類和普通類的主要有三點區別

1)抽象方法必須爲public或者protected(因爲如果爲private,則不能被子類繼承,子類便無法實現該方法),缺省情況下默認爲public。
2)抽象類不能用來創建對象;
3)如果一個類繼承於一個抽象類,則子類必須實現父類的抽象方法。如果子類沒有實現父類的抽象方法,則必須將子類也定義爲爲abstract類。
在其他方面,抽象類和普通的類並沒有區別。

上面第1)點注意一下:普通方法可以爲private,可以被繼承但是不能被子類調用;抽象方法不能用private修飾,因爲抽象方法要被重寫纔有意義。

補充:抽象類和接口的區別
①抽象類中可以有構造方法,但接口中沒有;
②抽象類中可以有普通成員變量、靜態方法、普通方法,抽象方法,而接口中只有抽象方法
③接口可以多實現,但只能繼承一個類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章