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
- iOS开发学习第十五课——继承、初始化方法、便利构造器
- iOS开发之OC继承、初始化方法、便利构造器
- iOS OC03_继承,便利构造器,初始化方法
- OC学习-继承,便利构造器,初始化方法
- 【继承】指定初始化方法【便利构造器】
- 03 继承 初始化方法 便利构造器
- 继承 初始化方法 便利构造器
- OCday3 初始化方法, 便利构造器, 继承
- OC_继承,便利构造器,初始化方法
- OC_继承,便利构造器,初始化方法
- OC_继承,便利构造器,初始化方法
- OC_继承,便利构造器,初始化方法
- OC_继承,便利构造器,初始化方法
- day3: 继承、初始化方法、便利构造器
- 继承 初始化方法 便利构造器
- [TwistedFate]继承 初始化方法 便利构造器
- 继承、初始化方法、便利构造器
- iOS 开发 OC编程 便利构造器以及初始化方法
- 类集概念总结
- 2015061102 - 在js中使用freemarker数据
- iPad app 开发概述 - iPad开发系列文章之二
- Hibernate 学习笔记:Hibernate 项目开发中,NoSuchMethodError解决方法
- p124.45
- iOS开发学习第十五课——继承、初始化方法、便利构造器
- iOS 动画总结(一)
- Java -数组-String字符串
- ubutu ssh openWRT
- 利用OpenCV给图像添加标注
- 成功叛逃到hexo
- spring+jdbc
- SiteMesh基本用法及示例
- Java XML和IO流