OC之继承、初始化、便利构造器

原创 2015年11月19日 08:57:44


继承

继承特点:上层(冒号后面)是父类,下层(冒号前面)是子类
继承是单向的不能相互继承
继承具有传递性,A继承于B,B继承于C,A具有B和C的特征和行为
子类能继承父类的所有特征和行为
面向对象提供了继承语法,能够大大简化代码,把公共的方法和实例变量写在父类里,子类只需要写自己独有的方法和实例变量即可
继承既能保证类的完整性又能简化代码
OC中只允许单继承
没有父类的类称为根类,OC中的根类是NSObject(祖宗)
继承的内容:所有实例变量和方法
如果子类不满意父类的方法,可以重写(overwrite)父类的方法
继承中方法的执行
A:B B:C C:D:NSOject
A继承自B,B继承自C,C继承自D  
给A对象发送消息eat:
1.查找本类中是否实现或者重写eat方法
2.如果本类没有实现,就去上一级的父类去查找是否实现eat
3.逐级查找eat方法,,直到找到为止,如果最后一个类也没有实现eat方法,程序会崩溃
super是编译器指令,并非对象
作用:给super发消息可以执行父类中实现的方法
子类可以重写父类的方法,即子类可以既有自己的实现,又有父类继承下来的实现,如果想使用,向super发送消息即可
创建对象分为两步:开辟内存空间、初始化
初始化方法的作用:为某些实例变量赋初值
初始化方法在整个对象生命周期内只调用一次
完整的初始化方法:
- (void) init{
//给super发送init消息:即执行父类中的init方法
self = [super init];
if(self){
//子类自己的初始化设置
}
//初始化完成,返回对象本身
return self;
}
学习继承之前,初始化方法并没有self = [super init];字样。我们为实例变量逐一赋值
学习了继承之后,父类中声明了公共的实例变量。作为父类,也有自己的初始化方法,为这些事例变量进行赋值。
子类中定义了除了父类中的实例变量之外的实例变量
在自身初始化过程中,优先向super发送init方法。初始化公共变量。初始化成功后,再初始化自身特有变量,从而完成所有
实例变量的初始化
初始化过程:
1.自己的初始化方法中,优先调用父类的初始化方法。
2。父类的初始化方法中再调用父类的初始化方法,依次往上调用
3。处于最上层的初始化完成后回到第二层初始化方法中,完成第二层的初始化
4。第二层的初始化完成后再返回第三层的初始化方法中,依次执行初始化方法直到本类完成初始化方法
初始化方法的特征:
初始化方法是“-”方法
返回值是id或者instancetype类型
以init开头
可以带0到多个参数(也就是咱们的自定义初始化方法)
内部实现:先执行super的初始化方法,再初始化自身变量,最后return self
便利构造器
声明和实现便利构造器
+(id)personWithName:(NSString *)name
{
Person * p = [[Person alloc]initWithName:name];
return  p;
}
便利构造器在初始化方法的基础上前进一小步,封装了对象的创建过程(也就是把alloc init 方法封装到对象内部)
便利构造器是+方法,只能类去调用,可以添加参数
内部实现:封装了alloc init方法,使用起来更简洁

版权声明:本文为博主原创文章,未经博主允许不得转载。

OC学习-继承,便利构造器,初始化方法

继承继承继承的主要作用就是保证类的完整以及简化代码.使用时把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法就行特点: 只允许单继承 OC中的根类是NSObject 继承的内容:是...

OC_继承,便利构造器,初始化方法

//  main.m //  OC3_继承,便利构造器,初始化方法 // //  Created by dllo on 15/7/16. //  Copyright (c) 2...

OC第三天-继承,初始化方法,便利构造器 ,self,super,方法重写

继承、初始化方法、便利构造器 Person.h#import @interface Person : NSObject{ NSString *_name; //姓名 int ...

OC学习_ 第三天 继承、初始化方法、便利构造器

1.继承作为OC 三大特征之一,它有什么特点?        继承的特性:      1.继承是单向的(从上到下)      2.继承是可传递的      3.继承不能相互继承     ...

OC-继承-初始化方法-便利构造器(练习题-打僵尸)

需求: 1、定义普通僵尸类:   实例变量:僵尸总血量、僵尸每次失血量。   方法:初始化方法、便利构造器、被打击失血、死亡。 2、定义路障僵尸类:   实例变量:僵尸总血量、僵尸每次失血量,道具,弱...

《IOS_OC》继承、多态、初始化方法、便利构造器

一:继承 面向对象的三大特征:封装(函数的定义封装)、继承(子类继承父类的实例变量和方法)、多态(下面会介绍) 继承的特点如下: 1、继承父类所有的实例变量和方法  2、继承具有单一性,只...

iOS OC03_继承,便利构造器,初始化方法

// //  Zombie.h //  OC03_继承,便利构造器,初始化方法 // //  Created by dllo on 15/7/16. //  Copyright (c) 20...

OC第三天:继承、初始化⽅法、便利构造器

⼀、继承 继承的上层:⽗类,继承的下层:⼦类。 继承是单向的,不能相互继承。 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和⾏ 为。 ⼦类能继承⽗类全部的特征和⾏为。 ⾯向对象提供了继...

OC-继承、初始化方法、便利构造器概念

继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性...
  • han919_
  • han919_
  • 2015年11月13日 08:53
  • 324

iOS前期OC训练OC_02继承,便利构造器,初始化方法

// //  main.m //  OC03_继承, 便利构造器,初始化方法 // //  Created by dllo on 15/7/16. //  Copyright (c) 20...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OC之继承、初始化、便利构造器
举报原因:
原因补充:

(最多只允许输入30个字)