繼承是面向?qū)ο蟮闹匾匦灾唬惗x是累加的奸鸯,每一個(gè)定義的類都是基于其父類坝初,可以繼承父類中定義的實(shí)例變量和方法浸剩。
1、新增子類
在Xcode中鳄袍,依次點(diǎn)擊File -> New -> File -> Cocoa Touch Class绢要,即可新增類,在Subclass of中輸入或者選擇新增類的父類拗小,如下圖所示:新增的Magician類是Player類的子類重罪。
2、繼承父類的實(shí)例變量與方法
繼承父類的實(shí)例變量:當(dāng)類對象創(chuàng)建一個(gè)新實(shí)例的時(shí)候,新的對象不僅僅包含為它自己定義的屬性/實(shí)例變量剿配,并且還包括它父類的屬性/實(shí)例變量搅幅,以及它父類的父類的屬性/實(shí)例變量,并按照這個(gè)規(guī)則一直追溯到根類呼胚。在iOS開發(fā)中盏筐,NSObject是所有類的根類,因此砸讳,所有類都可以使用NSObject中定義的屬性/實(shí)例變量以及方法琢融。
繼承父類的方法:一個(gè)對象既可以訪問自身定義的方法,也可以訪問所有父類的方法簿寂。當(dāng)需要調(diào)用父類的方法時(shí)漾抬,需要使用到super。
下面的示例代碼中常遂,在新增的Magician類是Player類的子類纳令,它具有兩個(gè)自身特有的方法specialMagicAttack和mixAttack。其中克胳,specialMagicAttack方法中平绩,使用到了父類的屬性magicPoint;另外漠另,在mixAttack方法中捏雌,使用super關(guān)鍵字,調(diào)用了父類的兩個(gè)方法笆搓。
#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