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

来源:互联网 发布:淘宝会员卡怎么领取 编辑:程序博客网 时间:2024/06/17 00:29
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];
    }
   
0 0
原创粉丝点击