类(Class)介绍:2-类的继承

继承是面向对象的重要特性之一,类定义是累加的,每一个定义的类都是基于其父类,可以继承父类中定义的实例变量和方法。

1、新增子类

在Xcode中,依次点击File -> New -> File -> Cocoa Touch Class,即可新增类,在Subclass of中输入或者选择新增类的父类,如下图所示:新增的Magician类是Player类的子类。

类(Class)介绍:2-类的继承_第1张图片

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

你可能感兴趣的:(类(Class)介绍:2-类的继承)