【问题标题】:How does an Objective C subclass initialize method calls the superclass's initialize methodObjective C子类的initialize方法如何调用超类的initialize方法
【发布时间】:2012-04-04 15:34:08
【问题描述】:

在阅读 Apple 开发网站上的“objective c guide”时,我遇到了一些问号。从这个question 我已经知道子类和超类的“初始化”方法都被调用了。我的问题是;为什么会这样?我从那篇文章中也知道总是调用初始化,但是当我从不使用超类本身而只使用子类时,这是否也是如此?

关于这个话题,我想到了一个与此相关的小问题:

  • 子类是否“包含”它的超类以及一些新方法/变量,或者
  • 是否所有内容都从超类复制到子类中?

在第一种情况下,我会理解初始化方法将被发送到子类中的“包含”超类,在第二种选择中,我希望子类的初始化方法显式调用 [super initialize],它没有。

谢谢!

【问题讨论】:

    标签: objective-c inheritance subclass superclass


    【解决方案1】:

    +initialize 调用很特殊,每个类都显式调用。这是在您习惯看到的正常继承链之外完成的。 +initialize 将在第一次访问时在每个类、子类和类别上调用(是的,类别有自己的初始化)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 2012-01-21
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多