swift學(xué)習(xí) - 屬性和方法的繼承(override)

屬性:

  1. 對計(jì)算式屬性(實(shí)例屬性+ 類型屬性),子類均可以重寫(有能力,看父類允不允許->修飾符限制),如果不想讓子類重寫,在計(jì)算式屬性前加final關(guān)鍵字,或者直接在整個(gè)類class 前加final限制符。

1.1 對計(jì)算式實(shí)例屬性來說,如果不想子類重寫,直接加final修飾就好了
1.2 對計(jì)算式類型屬性來說,可以用class關(guān)鍵字來修飾屬性,表示允許子類重寫,也可以用static修飾,表示不允許子類重寫。注意此時(shí)的static 等效于 final class 修飾符

  1. 對存儲式屬性(實(shí)例屬性+ 類型屬性)來說,均不允許子類重寫存儲室屬性(無能力,均不允許), 因?yàn)椴荒苡型瑯拥拿执嬖凇?/p>

    2.1. 對存儲式實(shí)例屬性來說,雖然不允許子類重寫該存儲式屬性, 但是如果允許子類重寫存儲式實(shí)例屬性的屬性觀察者.注意重寫監(jiān)聽者的時(shí)候,不允許對實(shí)例變量初始化。且調(diào)用順序是先調(diào)用子類的willset,再調(diào)用父類的willset, 再調(diào)用子類的didset,再調(diào)用父類的didset。
    2.2. 對存儲室類型屬性來說,只能用static修飾,不能用class,且不能重寫改實(shí)例類型屬性的屬性觀察者。

方法:

1.類方法,需要用static或者class修飾(class修飾只有在類中可以使用,枚舉和結(jié)構(gòu)體的類方法只能用static),在類方法前用class修飾表示該類方法可以被子類重寫,加static則不可以被子類重寫, 此時(shí)static = final class
2.實(shí)例方法。 加final 則不可以被子類重寫.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容