iOS开发之OC继承、初始化方法、便利构造器

一、继承
继承的上层:父类,继承的下层:子类。
继承是单向的,不能相互继承。
继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行 为。
子类能继承父类全部的特征和行为。
iOS开发之OC继承、初始化方法、便利构造器_第1张图片
特点:
OC中只允许单继承。
没有父类的类称为根类,OC中的根类是NSObject(祖宗)。
继承的内容:所有实例变量和方法。
如果子类不满意父类方法的实现,可以重写(overwrite)父 类的方法。
当子类继承父类时,子类可以不重新声明方法。子类调用从父类继承的方法时,不是在调用父类的方法,子类调用的是自己的,只是父类提欧诺个了实现形式。
iOS开发之OC继承、初始化方法、便利构造器_第2张图片
iOS开发之OC继承、初始化方法、便利构造器_第3张图片
Self
在类方法中,self表示调用这个方法的类,只能调用类方法,不能调用实例方法
在实例方法中,self表示调用这个方法的对象,只能调用实例方法,不能是类方法
Super
super是编译器指令,并非对象。
作用:给super发消息,可以执⾏行父类中实现的方法。
二、初始化方法
创建对象分两步:开辟空间、初始化。
初始化方法的主要作用是:为某些实例变量赋初值。
初始化方法在对象的整个生命周期里只使用一次。
iOS开发之OC继承、初始化方法、便利构造器_第4张图片
子类定义了除⽗父类中公共实例变量之外的实例变量。在自⾝身的 初始化方法中,优先向super发送init消息,初始化公共变量,初始化成功之后,再初始化自⾝身特有变量,从⽽而完成全部实例变量的初始化。
初始化过程
1. 自⼰己的初始化方法中,优先调⽤用父类的初始化方法
2. 父类的初始化方法中再调⽤用父类的初始化方法,依次往上调⽤用
3. 处于最上层的初始化完成之后,回到第二层的初始化方法中, 完成第二层的初始化。
4. 第二层的初始化完成之后,回到第三层的初始化方法中,依次 执行初始化方法,直到本类的初始化方法完成。

初始化方法特征
1.初始化方法是 “-”方法
2.id或者instancetype类型的返回值
3.以init开头
4.可以带0到多个参数 内部实现:先执行super的初始化方法,再初始化自⾝身变量,return self。
三、便利构造器
便利构造器在初始化方法的基础上前进了一⼩小步。封装了对象创建过程。
便利构造器是“+”方法,返回本类型的实例,方法名以类名开头。
可以有0到多个参数。内部实现:封装了alloc和初始化方法。使用起来更加简洁。
iOS开发之OC继承、初始化方法、便利构造器_第5张图片

你可能感兴趣的:(iOS开发之OC继承、初始化方法、便利构造器)