iOS开发学习第十五课——继承、初始化方法、便利构造器

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;
    }
   
   
 构造函数一般书写方式:
   
   
 self =[super init];
   
   
 if(self)
       
    {
       
       
     函数体
       
    }
   
   
 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、付费专栏及课程。

余额充值