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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 初见兔儿哥 中级黑马   /  2015-8-5 22:01  /  401 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

super的作用

直接调用父类中的某个方法

super处在对象方法中,那么就会调用父类的对象方法

super处在类方法中,那么就会调用父类的类方法

使用场合:子类重写父类的方法时想保留父类的一些行为




@public : 在任何地方都能直接访问对象的成员变量

@private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private)

@protected : 可以在当前类及其子类的对象方法中直接访问  (@interface中默认就是@protected)

@package : 只要处在同一个框架中,就能直接访问对象的成员变量

2.-init方法的重写


目的:给创建出来的对象初始化一些成员变量。

注意点:先调用父类的构造方法([super init])再进行子类内部成员变量的初始化

- (id)init
{
    // 1.一定要调用super的init方法:初始化父类中声明的一些成员变量和其他属性
    self = [super init]; // 当前对象self
   
   
    // 2.如果对象初始化成功,才有必要进行接下来的初始化
    if (self != nil)
    { // 初始化成功
        _name = @"David";
    }
   
    // 3.返回一个已经初始化完毕的对象
   return self;
}

3.自定义构造方法
注意:

1.一定是对象方法,一定以 - 开头

2.返回值一般是id类型

3.方法名一般以initWith开头


4.分类

作用:在不改变原来类内容的基础上,可以为类增加一些方法

注意:

1.分类只能增加方法,不能增加成员变量

2.分类方法实现中可以访问原来类中声明的成员变量

3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用

4.方法调用的优先级:分类(最后参与编译的分类优先) --> 原来类  --> 父类

0 个回复

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