继承是面向对象的重要特性之一,类定义是累加的,每一个定义的类都是基于其父类,可以继承父类中定义的实例变量和方法。
1、新增子类
在Xcode中,依次点击File -> New -> File -> Cocoa Touch Class,即可新增类,在Subclass of中输入或者选择新增类的父类,如下图所示:新增的Magician类是Player类的子类。
2、继承父类的实例变量与方法
继承父类的实例变量:当类对象创建一个新实例的时候,新的对象不仅仅包含为它自己定义的属性/实例变量,并且还包括它父类的属性/实例变量,以及它父类的父类的属性/实例变量,并按照这个规则一直追溯到根类。在iOS开发中,NSObject是所有类的根类,因此,所有类都可以使用NSObject中定义的属性/实例变量以及方法。
继承父类的方法:一个对象既可以访问自身定义的方法,也可以访问所有父类的方法。当需要调用父类的方法时,需要使用到super。
下面的示例代码中,在新增的Magician类是Player类的子类,它具有两个自身特有的方法specialMagicAttack和mixAttack。其中,specialMagicAttack方法中,使用到了父类的属性magicPoint;另外,在mixAttack方法中,使用super关键字,调用了父类的两个方法。
#import "Player.h"
@interfaceMagician:Player
//魔法师特殊魔法攻击
-(void)specialMagicAttack;
//连击(普通攻击+魔法攻击)
-(void)mixAttack;
@end
#import "Magician.h"
@implementationMagician
-(void)specialMagicAttack{
self.magicPoint-=50;
NSLog(@"specialMagicAttack!");
}
-(void)mixAttack{
//普通攻击
[supernormalAttack];
//魔法攻击
[supermagicAttack];
}
@end
网友评论