***Zombie.h***
// 自定义初始化方法的声明
- (id)initWithBlood:(NSInteger)blood
attack:(NSInteger)attack
speed:(CGFloat)speed;
// 便利构造器
+ (Zombie *)zombieWithBlood:(NSInteger)blood
attack:(NSInteger)attack
speed:(CGFloat)speed;
***Zombie.m***
- (id)initWithBlood:(NSInteger)blood
attack:(NSInteger)attack
speed:(CGFloat)speed {
// 先调用父类的初始化方法,对父类继承过来的成员变量进行设置
self = [super init];
// 当这个对象初始化过程中出现问题,会返回一个空指针, 如果是空指针,赋值没意义
if (self) {
_blood = blood;
_attack = attack;
_speed = speed;
}
return self;
}
// 类方法
// 便利构造器把创建对象的过程放到了程序的.m文件中,这样通过类就直接能创建出一个对象
// 系统类提供了很多便利构造器的方法
+ (Zombie *)zombieWithBlood:(NSInteger)blood
attack:(NSInteger)attack
speed:(CGFloat)speed {
Zombie *zombie = [[Zombie alloc] initWithBlood:blood attack:attack speed:speed];
return zombie;
}
关于继承,子类在定义特征时只需定义自己特有的特征即可,其余都会继承父类,行为同理