继承
1.继承:子类会继承父类所有的特征还有行为
2.对象在执行方法的时候,子类重写了父类的方法,系统会优先选择使用子类的方法,如果没有重写则使用父类的方法
3.继承是单向的,一个类只能有一个父类,但是一个类可以有无数个子类
4.NSObject是所有类的父类,也可以成为基类
5.类的继承是有传递性的
6.继承就是在工程创建两个类,再创建第二个类的时候在选择类型的时候不选择NSObject而是选择要继承的类,这样第二个就成功继承了第一个类的特征既行为,在子类中可直接进行进行调用
7.子类只需要写自己的特有的特征就可以,其余的特征都会继承
8.对于子类的初始化方法时,先调用一下父类的初始化方法,对父类继承过来的成员变量进行设置 如:
-(id)initWithBlood:(NSInteger)blood
atttack:(NSInteger)attack
speed:(CGFloat)speed
{
self=[super init ] ;
if (self) {
_speed=speed;
_attack=attack;
_blood=blood;
}
return self;
}
便利构造器
1.便利构造器把创建的对象的对象的过程反倒了程序的.m文件中,这样通过类直接就能创建出一个对象出来
2.系统提供了很多的便利构造器的方法
3.便利构造器是加号方法(类方法)以类名作为开头
4.用Zombie *和id都是可以的 主要是看你定义的什么类名
5.声明部分:
+(Zombie *)zombieWithBlood:(NSInteger)blood
attack:(NSInteger)attack
speed:(CGFloat)speed;
6.实现部分:
+(Zombie *)zombieWithBlood:(NSInteger)blood
attack:(NSInteger)attack
speed:(CGFloat)speed
{
Zombie *zombie=[Zombie alloc]initWithBlood:blood
attack:attack
speed:speed];
return zombie;
}
7.调用部分:
Zombie *zom=[Zombie zombieWithBlood:100 attack:20
speed:10];//创建Zombie的对象zom并对其进行初始化
[zom attack];//调用类的方法
自定义的初始化方法
1.当这个对象在初始化过程中出现问题会返回一个空指针,如果是空指针接下来的赋值就没有意义了,跳过去,如果返回是一个正常的对空间的地址,才能继续赋值.
2.方法必须以init作为开头,后面跟一个with,w必须大写
3.声明部分:
-(id)initWithStuName:(NSString *)stuName
stuAge:(NSInteger)stuAge
stuHonny:(NSString *)stuHonny;
4.实现部分:
-(id)initWithStuName:(NSString *)stuName
stuAge:(NSInteger)stuAge
stuHonny:(NSString *)stuHonny
{
self=[super self];
if (self)
{
self.stuName=stuName;
self.stuAge=stuAge;
self.stuHonny=stuHobby;
}
return self;
}