抽象類中的非抽象方法

抽象類的作用相當於模板

其內部可以有抽象方法和非抽象方法:

其中抽象方法必須被繼承該抽象類的子類重寫;

而非抽象方法則不需要。

那麼,非抽象方法的目的是什麼呢?

重複利用。

當多個子類繼承同一個抽象類的時候,有些共同的屬性,不需要子類特別實現的可以定義爲同一個非抽象方法,使用的時候子類直接調用即可。

比如抽象父類內部有個單例的非靜態的非抽象方法c,有A,B兩個子類都繼承該類,則A和B在調用c方法的時候,是同一個對象嗎?

測試發現不是,也就是系統在生成的時候,實現了A.c和B.c兩個方法。

那麼,c方法的目的是什麼?不需要重複實現,僅在父類實現一次就可以循環利用。

 

如果是靜態statc的c方法,則使用的是同一個,因爲static的本質是在jvm的虛擬機內單獨建立一塊區域統一存放,實現上只會有一個實例。

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