Java修飾符abstract,static,final的區別

 

注意:有抽象方法的類必定是抽象類。可是抽象類中不必定都是抽象方法,也能夠全是具體方法。
abstract修飾符在修飾類時必須放在類名前。
安全

abstract修飾方法就是要求其子類覆蓋(實現)這個方法。調用時能夠以多態方式調用子類覆蓋(實現)後的方法,也就是說抽象方法必須在其子類中實現,除非子類自己也是抽象類。spa

注意:父類是抽象類,其中有抽象方法,那麼子類繼承父類,並把父類中的全部抽象方法都實現(覆蓋)了,子類纔有建立對象的實例的能力,不然子類也必須是抽象類。抽象類中能夠有構造方法,是子類在構造子類對象時須要調用的父類(抽象類)的構造方法。對象

final和abstract,private和abstract,static和abstract,這些是不能放在一塊兒的修飾符,由於 abstract修飾的方法是必須在其子類中實現(覆蓋),才能以多態方式調用,以上修飾符在修飾方法時期子類都覆蓋不了這個方法,final是不能夠覆 蓋,private是不可以繼承到子類,因此也就不能覆蓋,static是能夠覆蓋的,可是在調用時會調用編譯時類型的方法,由於調用的是父類的方法,而 父類的方法又是抽象的方法,又不可以調用,因此上的修飾符不能放在一塊兒。繼承

抽象(abstract)方法表明了某種標準,定義標準,定義功能,在子類中去實現功能(子類繼承了父類並須要給出從父類繼承的抽象方法的實現)。
方法一時間想不到怎麼被實現,或有意要子類去實現而定義某種標準,這個方法能夠被定義爲抽象。(abstract)編譯

模板方法模式
用abstract把制訂標準和實現標準分開,制定的標準就是模板,實現就是按模板標準來 實現,也就是繼承模板,實現模板中相應功能的方法。模板中不容許修改的方法能夠用fianl來修飾,這個方法不能使抽象方法,爲保證安全,封裝,把模板中 不公開的部分用protected(保護)修飾。模板

相關文章
相關標籤/搜索