2012-03-20 109 views
1

從Apple的開發站點閱讀'objective c guide'時,我收到了一些問號。從這個question我已經知道sub和superclass'initialize'方法被調用。我的問題是;爲什麼會發生?我從那篇文章中也知道initialize總是被調用的,但是當我從不使用超類本身,並且只有子類時,它甚至是真的。Objective C子類初始化方法如何調用超類的初始化方法

它來到介意這個話題有輕微的相關問題:

  • 難道一個子「包含」這是父類,有一些新的方法/變量在一起,或
  • 就是一切從超複製到子類?

在第一種情況下,我能夠理解,初始化方法將在子類中被髮送到「包含」超,在第二個選項,我期望子類的初始化方法來明確地調用[超級初始化] ,它沒有。

謝謝!

回答

4

+initialize調用是特殊的,並且明確地爲每個類調用。這是在你習慣看到的正常繼承鏈之外完成的。在第一次訪問它們時,將會在每個類,子類和類別(是的,類別都會自己初始化)上調用+initialize

+0

超級,謝謝! – Pega88 2012-03-20 06:29:26

相關問題