黑马程序员技术交流社区

标题: 重写构造方法格式。。。 [打印本页]

作者: 默凉雨    时间: 2015-8-15 12:34
标题: 重写构造方法格式。。。



重写构造方法的格式
  @implementatio  类名       //当子类把父类的init覆盖了,这是默认的先执行子类的
      -(instancetype)init{     
      //先让父类把父类原来做得事情做完,并判断是否初始化成功
        if(self=[super init]){
      //此处填写初始化的内容
      }
    return self;   //self指代的是方法的调用者
      }

补充:

       【super init】的作用: 面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化
       【super init】为什么要赋值给self: 简单来说是为了防止父类的初始化方法release掉了self指向的
                                                              空间并重新alloc了一块空间。这时的话,【super init】可能
                                                              alloc失败,这时就不再执行if中的语句。
          super是作为消息接受者的实质: super不是真正的指针,【super init】的实质是由self来接受
                                                              父类的message。























欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2