美文网首页
类(Class)介绍:2-类的继承

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

作者: 赵亦晨 | 来源:发表于2016-10-17 17:31 被阅读0次

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

    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

    相关文章

      网友评论

          本文标题:类(Class)介绍:2-类的继承

          本文链接:https://www.haomeiwen.com/subject/naczyttx.html