由xib建立的類,被繼承後的問題

2021-07-02 22:41:12 字數 645 閱讀 2806

一直聽說xib建立的檔案不能被繼承,但不知道為什麼。今天研究了一下,我認為xib被繼承的最大問題是:當子類建立例項時,是從xib中獲取的,而從xib中獲取的物件一定是和該xib檔案關聯的類的物件。也就是說子類根本沒有建立出自己的例項,而是父類的例項。這樣的話,雖然在子類中能夠呼叫到父類的公有方法,但是根本無法重寫父類的方法,因為根本沒有子類的例項去呼叫重寫的方法。

看**:

// 繼承關係

@inte***ce

smseditingcontacttabbar : smseditingtabbar

// 父類中例項化的方法

+ (instancetype)editingtabbar

// 子類例項化

smseditingcontacttabbar *bar = [smseditingcontacttabbar editingtabbar];

執行後的除錯

不能被繼承的類

不能被繼承的類,就是子類在呼叫父類的建構函式的時候失敗就沒法被整合了,所以可以把析構函式定義為private,因為在呼叫建構函式的時候,會先檢查析構函式,如果析構是private的,那麼建構函式也沒法被呼叫。這個問題和另一篇文章類似我們通過設定共有的static函式來構造和析構。class a a ...

不能被繼承的類

題目 用c 設計乙個不能被繼承的類。分析 乙個類被繼承後,在生成派生類物件時,派生類會主動呼叫父類的建構函式,所以如果父類的建構函式被設定成私有時,派生類的物件就無法構建。一 直接將建構函式設為私有函式 class sealedclass static void deleteinstance sea...

不能被繼承的類

何如建立乙個不能被繼承的類呢?c 語法規定虛基類必須由子類顯示初始化。如果你不在初始化列表裡顯示呼叫虛基類的建構函式,則編譯器會呼叫預設建構函式 如果類沒有預設建構函式,則編譯不通過。利用這個特點,建立乙個private建構函式的類a,並讓類b成為他的友元類,讓類b虛繼承類a 此時類b就不能被繼承了...