03 继承 初始化方法 便利构造器
2014-11-23 19:08
253 查看
一 继承
1)简述
继承的上层: 父类,继承的下层:子类;
继承是单向的,不能相互继承;
继承具有传递性:A继承与B,B继承与C,A具有B和C的特征和行为;
子类能继承父类全部的特征和行为;
2)继承的实现
@interface Student :Person//学生继承Person
{
NSString *_className;
CGFloat _height;//身高
}
3)继承的特点
OC中只允许单继承;
没有父类的类称为根类,OC中的根类是NSObject(祖宗);
继承的内容:所有实例变量和方法;
如果子类不满意父类的方法的实现, 可以重写父类的方法
4)继承中方法的执行
二 初始化方法
1)简述
学习继承之前,初始化方法,没有self = [ super init]字样,我们为实例变量逐一赋值;
学习继承之后,父类中声明了公共的实例变量,作为父类,也应该有自己的初始化方法,
为这些公共实例变量赋初值;
创建对象分两步:开辟空间,初始化;
初始化方法的主要作用是:为某些实例变量赋初值
初始化方法在对象的整个生命周期里只使用一次
初始化方法中,优先向super发送init开头的消息(初始化公共变量),初始化成功后再初始化自身特有变量,从而完成全部实例变量的初始化
self = [super initWith:
name score:score]; //super 表示父类继承过来的方法 ,
self 表示自己的方法
2)初始化方法特征
- (instancetype)initWithName:(NSString *)name;
1)是" - "(对象)方法
2)类型的返回值 id 或 instancetype类型的返回值
3)方法名(init…)以init开头;
4)可以带0~n个参数
5)内部实现:先执行super的初始化方法,再初始化自身变量,return self
这里super
super是编译器指令,并非对象;
作用:给super发消息,可以执行父类中实现的方法;
直接调用父类中的某个方法;
super处在对象方法中,那么就会调用父类的对象方法
super处在类方法中,那么就会调用父类的类方法
使用场景:子类重写父类的方法时,想保留父类的一些行为
子类可以重写父类的方法,即:子类既有自己的实现,又有父类继承下来的实现,
如果想使用父类的实现,向super发送消息;
//实现自定义初始化方法
- (instancetype)initWithName:(NSString *)name
score:(CGFloat)score
className:(NSString *)className
height:(CGFloat)height
{
//1.先去使用去父类继承过来的方法
self = [superinitWith:
namescore:score];//super表示父类继承过来的方法 , self表示自己的方法
//2.判断初始化是否成功,成功后在初始化自己的实例变量
if (self) {//判断是否存在 if(self
!=nil)
_className = className;
_height = height;
}
//3.返回
return
self;
}
三 便利构造器
1)简述
便利构造器在初始化的基础上前进一小步,封装了对象创造;
变量构造器是" + "(类)方法,返回本类型的实例,方法名以类名开头person…;
可以带0~n个参数;
内部实现:封装了allco和初始化方法,使用起来更加简洁
2)实现
1)声明和实现便利构造器
+ (instancetype)personWithName:(NSString *)name
score:(CGFloat)score
+ (instancetype)personWithName:(NSString *)name score:(CGFloat)score
{
Person *person = [[Personalloc]initWith:namescore:score];
return person;
}
2)使用便利构造器创建对象
//创建一个 Person
类型的对象
Person *per = [[Personalloc]initWith:@"
1)简述
继承的上层: 父类,继承的下层:子类;
继承是单向的,不能相互继承;
继承具有传递性:A继承与B,B继承与C,A具有B和C的特征和行为;
子类能继承父类全部的特征和行为;
2)继承的实现
@interface Student :Person//学生继承Person
{
NSString *_className;
CGFloat _height;//身高
}
3)继承的特点
OC中只允许单继承;
没有父类的类称为根类,OC中的根类是NSObject(祖宗);
继承的内容:所有实例变量和方法;
如果子类不满意父类的方法的实现, 可以重写父类的方法
4)继承中方法的执行
二 初始化方法
1)简述
学习继承之前,初始化方法,没有self = [ super init]字样,我们为实例变量逐一赋值;
学习继承之后,父类中声明了公共的实例变量,作为父类,也应该有自己的初始化方法,
为这些公共实例变量赋初值;
创建对象分两步:开辟空间,初始化;
初始化方法的主要作用是:为某些实例变量赋初值
初始化方法在对象的整个生命周期里只使用一次
初始化方法中,优先向super发送init开头的消息(初始化公共变量),初始化成功后再初始化自身特有变量,从而完成全部实例变量的初始化
self = [super initWith:
name score:score]; //super 表示父类继承过来的方法 ,
self 表示自己的方法
2)初始化方法特征
- (instancetype)initWithName:(NSString *)name;
1)是" - "(对象)方法
2)类型的返回值 id 或 instancetype类型的返回值
3)方法名(init…)以init开头;
4)可以带0~n个参数
5)内部实现:先执行super的初始化方法,再初始化自身变量,return self
这里super
super是编译器指令,并非对象;
作用:给super发消息,可以执行父类中实现的方法;
直接调用父类中的某个方法;
super处在对象方法中,那么就会调用父类的对象方法
super处在类方法中,那么就会调用父类的类方法
使用场景:子类重写父类的方法时,想保留父类的一些行为
子类可以重写父类的方法,即:子类既有自己的实现,又有父类继承下来的实现,
如果想使用父类的实现,向super发送消息;
//实现自定义初始化方法
- (instancetype)initWithName:(NSString *)name
score:(CGFloat)score
className:(NSString *)className
height:(CGFloat)height
{
//1.先去使用去父类继承过来的方法
self = [superinitWith:
namescore:score];//super表示父类继承过来的方法 , self表示自己的方法
//2.判断初始化是否成功,成功后在初始化自己的实例变量
if (self) {//判断是否存在 if(self
!=nil)
_className = className;
_height = height;
}
//3.返回
return
self;
}
三 便利构造器
1)简述
便利构造器在初始化的基础上前进一小步,封装了对象创造;
变量构造器是" + "(类)方法,返回本类型的实例,方法名以类名开头person…;
可以带0~n个参数;
内部实现:封装了allco和初始化方法,使用起来更加简洁
2)实现
1)声明和实现便利构造器
+ (instancetype)personWithName:(NSString *)name
score:(CGFloat)score
+ (instancetype)personWithName:(NSString *)name score:(CGFloat)score
{
Person *person = [[Personalloc]initWith:namescore:score];
return person;
}
2)使用便利构造器创建对象
//创建一个 Person
类型的对象
Person *per = [[Personalloc]initWith:@"
相关文章推荐
- iOS开发学习第十五课——继承、初始化方法、便利构造器
- OC第三天-继承,初始化方法,便利构造器 ,self,super,方法重写
- OC:继承、初始化方法、便利构造器
- OC03 继承、初始化方法、便利构造器-1
- 继承,初始化方法,便利构造器
- 【继承】指定初始化方法【便利构造器】
- OC_继承,便利构造器,初始化方法
- OC-继承、初始化方法、便利构造器概念
- OCday3 初始化方法, 便利构造器, 继承
- OC学习_ 第三天 继承、初始化方法、便利构造器
- OC-继承-初始化方法-便利构造器(练习题-打僵尸)
- iOS开发之OC继承、初始化方法、便利构造器
- 继承 初始化方法 便利构造器
- OC基础:继承.初始化方法,便利构造器 分类: ios学习 OC 2015-06-16 19:27 84人阅读 评论(0) 收藏
- iOS前期OC训练OC_02继承,便利构造器,初始化方法
- OC_继承,便利构造器,初始化方法
- 《IOS_OC》继承、多态、初始化方法、便利构造器
- day3: 继承、初始化方法、便利构造器
- 继承、初始化方法、便利构造器
- iOS OC03_继承,便利构造器,初始化方法