final關(guān)鍵字在大多數(shù)的編程語(yǔ)言中都存在,表示不允許對(duì)其修飾的內(nèi)容進(jìn)行繼承或者重新操作。Swift中,final關(guān)鍵字可以在class、func和var前修飾。
通常大家都認(rèn)為使用final可以更好地對(duì)代碼進(jìn)行版本控制,發(fā)揮更佳的性能,同時(shí)使代碼更安全。下面通過(guò)實(shí)例代碼給大家介紹swift用final關(guān)鍵字來(lái)防止重寫(xiě)。
/** 用final關(guān)鍵字來(lái)防止重寫(xiě) final,最后的,最終的;決定性的;不可更改的 final 修飾類(lèi)的話,表示這個(gè)類(lèi)不可以被繼承。 如果修飾屬性或者方法,表示相應(yīng)的屬性或者方法不能被重寫(xiě)。 */ class Observer {// final 加上 var storeProperty: Int = 0 { willSet { print("storeProperty father will Set") } didSet { print("storeProperty father did Set") } } // final // 不能給計(jì)算屬性設(shè)定屬性觀察器 var computeProperty: Int { get { return 0 } set { print("Do nothing!") } } //final func dodododTest() -> Void { print("dadadadadaddadaad") } } class ChildOfObserver: Observer { // 可以重寫(xiě)父類(lèi)中變量存儲(chǔ)屬性 override var storeProperty: Int { willSet { print("storeProperty will Set") } didSet { print("storeProperty did Set") } } // 可以重寫(xiě)父類(lèi)中的計(jì)算屬性的屬性觀察器 override var computeProperty: Int { willSet { print("computeProperty will Set") } didSet { print("computeProperty did Set") } } override func dodododTest() { } } let co = ChildOfObserver.init() co.storeProperty = 10以上所述是小編給大家介紹的Swift用final關(guān)鍵字來(lái)防止重寫(xiě),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VEVB武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選