第三讲:继承,初始化方法,便利构造器
1.继承
继承是单向的,不能相互继承,子类能继承父类全部的特征和行为.
面对对象提供了继承语法,能大大简化代码.把公共的方法和实例变量写在父类,子类只需要写自己独有的实例变量和方法即可.
继承既能保证类的完整性,又能简化代码.
OC中只允许单继承,OC中的根类是NSObject.
如果子类不满意父类方法的实现.可以重写(overwrite)父类的方法
重写父类的方法不用声明,直接实现.
super:
super是编译器指令,并非对象
作用:给super发消息,可以执行父类中实现的方法.
self:在已定义的类中可以是对象,也可以是关键字
2.初始化方法
创建对象分两步:开辟空间和初始化
初始化的主要作用是:为某些实例变量赋初值.
初始化犯法在对象的整个生命周期只是用一次.
所有初始化方法都按照如下格式书写:
-(id)init{
self = [super init];//调用父类的实例变量的初始化
if(self){
//初始化自己的实例变量
………
}
//返回初始化对象
return self;
}
3.便利构造器
第一步:在.h声明一个便利构造器
第二部:在.m中创建一个对象,然后返回出去.
第三步:在main.m中调用创建对象实例
1.继承
继承是单向的,不能相互继承,子类能继承父类全部的特征和行为.
面对对象提供了继承语法,能大大简化代码.把公共的方法和实例变量写在父类,子类只需要写自己独有的实例变量和方法即可.
继承既能保证类的完整性,又能简化代码.
OC中只允许单继承,OC中的根类是NSObject.
如果子类不满意父类方法的实现.可以重写(overwrite)父类的方法
重写父类的方法不用声明,直接实现.
super:
super是编译器指令,并非对象
作用:给super发消息,可以执行父类中实现的方法.
self:在已定义的类中可以是对象,也可以是关键字
2.初始化方法
创建对象分两步:开辟空间和初始化
初始化的主要作用是:为某些实例变量赋初值.
初始化犯法在对象的整个生命周期只是用一次.
所有初始化方法都按照如下格式书写:
-(id)init{
self = [super init];//调用父类的实例变量的初始化
if(self){
//初始化自己的实例变量
………
}
//返回初始化对象
return self;
}
3.便利构造器
第一步:在.h声明一个便利构造器
第二部:在.m中创建一个对象,然后返回出去.
第三步:在main.m中调用创建对象实例