您的位置:首页 > 移动开发 > IOS开发

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

2015-08-12 13:23 435 查看
一、继承

继承的上层:父类,继承的下层:子类。

继承是单向的,不能相互继承。

继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行 为。

子类能继承父类全部的特征和行为。



特点:

OC中只允许单继承。

没有父类的类称为根类,OC中的根类是NSObject(祖宗)。

继承的内容:所有实例变量和方法。

如果子类不满意父类方法的实现,可以重写(overwrite)父 类的方法。

当子类继承父类时,子类可以不重新声明方法。子类调用从父类继承的方法时,不是在调用父类的方法,子类调用的是自己的,只是父类提欧诺个了实现形式。





Self

在类方法中,self表示调用这个方法的类,只能调用类方法,不能调用实例方法

在实例方法中,self表示调用这个方法的对象,只能调用实例方法,不能是类方法

Super

super是编译器指令,并非对象。

作用:给super发消息,可以执⾏行父类中实现的方法。

二、初始化方法

创建对象分两步:开辟空间、初始化。

初始化方法的主要作用是:为某些实例变量赋初值。

初始化方法在对象的整个生命周期里只使用一次。



子类定义了除⽗父类中公共实例变量之外的实例变量。在自⾝身的 初始化方法中,优先向super发送init消息,初始化公共变量,初始化成功之后,再初始化自⾝身特有变量,从⽽而完成全部实例变量的初始化。

初始化过程

1. 自⼰己的初始化方法中,优先调⽤用父类的初始化方法

2. 父类的初始化方法中再调⽤用父类的初始化方法,依次往上调⽤用

3. 处于最上层的初始化完成之后,回到第二层的初始化方法中, 完成第二层的初始化。

4. 第二层的初始化完成之后,回到第三层的初始化方法中,依次 执行初始化方法,直到本类的初始化方法完成。

初始化方法特征

1.初始化方法是 “-”方法

2.id或者instancetype类型的返回值

3.以init开头

4.可以带0到多个参数 内部实现:先执行super的初始化方法,再初始化自⾝身变量,return self。

三、便利构造器

便利构造器在初始化方法的基础上前进了一⼩小步。封装了对象创建过程。

便利构造器是“+”方法,返回本类型的实例,方法名以类名开头。

可以有0到多个参数。内部实现:封装了alloc和初始化方法。使用起来更加简洁。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: