Objc-C 知识点回顾 三 继承

1.继承
    OC中的继承特点
    1.单根继承,基类(根类)是NSObject
    2.单向继承,一个类只有一个父类,可以有很多的子类
    (继承的上层:父类,下层:子类)
    继承具有传递性,子类能继承父类全部的特征和行为
       建立继承关系以后,子类可以继承父类
    1.实例变量:public,protected
    2.方法:公共的方法
    子类可以根据自己的需要,重写父类的方法,由于父类已经声明过方法,子类重写父类的方法,只需要重写实现部分
    方法调用顺序:先从本类里找方法,如果找到,就调用方法;如果没有找到,就去父类里找,一直向上查找,直到找到方法
    当出现继承关系以后,*.h中可以#import父类的头文件,并且不会造成循环引用,因为OC中的继承是单向继承
2.初始化方法
(1)执行父类中实现的初始化方法。(向上递归到NSObject类中的初始化方法)
(2)从根类NSObject开始执行初始化方法。
(3)判断父类中的初始化是否成功,即self是否存在。
(4)完成对象的初始化设置,返回对象。
在自身类中,最终调用的初始化方法,称之为指定初始化方法
初始化的原则:先初始化父类,再初始化子类
例如:
    - (id)init {
    //初始化父类,并判断是否成功
    //self是调用本身的init的方法
    //super:oc中的关键字,给super发消息,可以执行父类中的实现的方法
    if (self = [super init]) {
        //如果成功,为自身的实例变量赋值
        number = 55;
        score = 90;
    }
    return self;
}
- (id)init {
    //初始化父类,并判断是否成功
    self = [super init];//
    if (self) {
        //如果成功,为自身的实例变量赋值
        number = 55;
        score = 90;
    }
    return self;
}
3.自定义初始化方法
把初始化和实例变量组合起来
例如:- (id)initWithNumber:(NSInteger)aNumber score:(CGFloat)aScore;
4.便利构造器
把内存分配,初始化和实例变量赋值组合起来
例如:
    +(Person *)personWithName:(NSString *)aName gender:(NSString *)aGender age:(NSInteger)aAge {
    //1
    Person *person = [[Person alloc] initWithName:aName genter:aGender age:aAge];
    return person;
    //2
    return [[Person alloc] initWithName:aName genter:aGender age:aAge];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值