A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 默凉雨 中级黑马   /  2015-8-15 12:34  /  375 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文




重写构造方法的格式
  @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。


















0 个回复

您需要登录后才可以回帖 登录 | 加入黑马