Java修飾符 --- abstract
阿新 • • 發佈:2021-10-08
使用抽象類的好處:介面和實現分離
@
目錄一、表明類或者成員方法具有抽象屬性
-
abstract 修飾的類為抽象類,如:
abstract class A { }
-
abstract 修飾的方法為抽象方法,如:
abstract int getId();
對於 abstract 方法只能宣告不能實現(因為沒有方法體),並且只能是例項方法,不能是類方法
二、抽象類(abstract 類)和普通類的區別
-
抽象類中可以有抽象方法,也可以有普通方法
普通方法不能有抽象法
-
普通類可以通過
new
建立,抽象類不能,所以,想要建立該物件,需要非抽象類子類重寫父類的抽象方法,並且實現
三、修飾符矛盾(final、private、static)
- abstract 不能和 final、private、static 一起修飾使用
- 原因:abstract 修飾的方法是必須在子類中實現(覆蓋),才能以多型方式呼叫,而
final
修飾父類,子類不能實現;private
修飾,子類不能繼承;static
修飾雖然可以實現,但是呼叫時會先呼叫編譯時型別的方法,也就是父類的 static 方法,結果發現是抽象方法,不能呼叫,所以,abstract 和 final、private、static不能一起用
四、abstract 類的子類
- 子類是非 abstract 類,必須重寫父類的 abstract 方法,給出方法體
- 子類是 abstract 類,可以重寫父類的 abstract 方法,也可以繼承父類的 abstract 方法(暫時不實現abstract方法)