OC第三天:继承、初始化⽅法、便利构造器
2015-10-28 20:56
218 查看
⼀、继承
继承的上层:⽗类,继承的下层:⼦类。继承是单向的,不能相互继承。
继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和⾏ 为。
⼦类能继承⽗类全部的特征和⾏为。
⾯向对象提供了继承语法,能⼤⼤简化代码。把公共的⽅法和实例 变量写在⽗类⾥,⼦类只需要写⾃⼰独有的实例变量和⽅法即可。
继承既能保证类的完整,⼜能简化代码
继承特点
OC中只允许单继承。没有⽗类的类称为根类,OC中的根类是NSObject(祖宗)。
继承的内容:所有实例变量和⽅法。
如果⼦类不满意⽗类⽅法的实现,可以重写(overwrite)⽗ 类的⽅法。
super
super是编译器指令,并⾮对象。
作⽤:给super发消息,可以执⾏⽗类中实现的⽅法。⼦类可以重写⽗类的⽅法,即:⼦类既有⾃⼰的实现,⼜有⽗ 类继承下来的实现,如果想使⽤⽗类的实现,向super发送消息。
⼆、初始化⽅法
初始化⽅法
创建对象分两步:开辟空间、初始化。初始化⽅法的主要作⽤是:为某些实例变量赋初值。
初始化⽅法在对象的整个⽣命周期⾥只使⽤⼀次。
初始化过程
1. ⾃⼰的初始化⽅法中,优先调⽤⽗类的初始化⽅法
2. ⽗类的初始化⽅法中再调⽤⽗类的初始化⽅法,依次往上调⽤
3. 处于最上层的初始化完成之后,回到第⼆层的初始化⽅法中, 完成第⼆层的初始化。
4. 第⼆层的初始化完成之后,回到第三层的初始化⽅法中,依次 执⾏初始化⽅法,直到本类的初始化⽅法完成。
初始化⽅法特征
初始化⽅法是 “-”⽅法
id或者instancetype类型的返回值
以init开头
可以带0到多个参数
内部实现:先执⾏super的初始化⽅法,再初始化⾃⾝变量,return self。
三、便利构造器
便利构造器便利构造器在初始化⽅法的基础上前进了⼀⼩步。封装了对象创 建过程。
便利构造器是“+”⽅法,返回 本类型 的实例,⽅法名以类名开 头。
可以有0到多个参数。
内部实现:封装了alloc和初始化⽅法。使⽤起来更加简洁。
总结
继承是⾯向对象三⼤特性之⼀,合理的继承,能减少很多冗余代码, 加快开发速度。初始化⽅法以init开头,在对象的声明周期中只使⽤⼀次。
便利构造器封装了对象的创建过程,进⼀步简化了对象创建的步骤。
相关文章推荐
- Xcode编译器里有鬼 – XcodeGhost样本分析
- 读写W25QXX死机问题
- Android之自定义dialog
- VC中生成动态链接库的三种方式(导出函数)
- 偶数个3【递推公式】
- 偶数个3【递推公式】
- RelayCommand命令 初识
- mysql数据库如何设置字符集
- 【BFS、二分图判断】二部图NYOJ1015
- 【BFS、二分图判断】二部图NYOJ1015
- 内核同步机制的一些见解(未完成)
- scikit-learn工具学习 - cross_validation , 一条语句里用for循环
- 递归算法及经典递归例子代码实现
- Android中自定义SeekBar背景颜色,进度条颜色,滑块图片
- Android开发相关的Blog推荐
- 深入理解javascript之IIFE
- Ubuntu 安装 flash插件
- Arraylist和linkedlist的区别,hashmap和hashtable的区别,hashmap和hashset的相同与不同,hashcode的用法
- Android之ListView控件
- 线程同步之条件变量:pthread_cond_signal和pthread_cond_wait