美文网首页
04-OC、继承

04-OC、继承

作者: amoLink | 来源:发表于2017-04-25 16:53 被阅读37次

    一、基本概念

    继承:通过拓展或修改既有类来定义新类的方法称为继承。其中既有类称为父类,新类称为子类
      程序中的“对象”和现实中的没什么区别,子女继承父母,自然就拥有父母的所有资源,子类继承父类同样拥有父类的方法和成员变量。

    继承示意图

    这里猫类和狗类继承自动物类,白猫类和黑猫类继承自猫类。

    • 继承的好处:
      • 抽取出重复的代码;
    • 建立类和类键的联系。
    • 继承的缺点:
      • 代码的耦合性变强。

    二、OC 中的继承

    @interface Animal : NSObject
    // Animal 类继承自 NSObject 类,获得 NSObject 类的方法。
    @end
    

    OC 是单继承语言。其中** NSObject **基本上是所有类的根类。

    三、继承的使用注意

    • 编译器从上往下执行,所以子类前面至少要有父类的声明。
    • OC 不允许子类和父类拥有相同名称的成员变量名。
    • OC 中子类可以拥有和父类相同名称的方法,子类调用时会优先调用自身的该方法。
      重写:即子类重新实现了父类中的方法,覆盖父类的实现。

    示例:Person 类继承 NSObject 类,Student 类继承 Person 类。

    示例

      创建一个 Student 类型的对象 Student *****stu = [ [ Student alloc ] init];
    此时会把 Student 类及其父类加载进内存。

    • 每个类中都有一个** super class 指针,该指针指向其父类。对象有一个 isa **指针指向该对象的类。

    四、继承和组合

    • 继承适用的场合:
    • 当两个类拥有相同的属性和方法时,就可以将相同的属性和方法抽取到一个父类中。
    • 当 A 类完全拥有 B 类的部分属性和方法是,可以考虑让 B 类继承 A 类,也可以考虑使用组合。

    继承:### 是 xxx,如 狗 是 动物,可以让狗继承动物类。
    组合:### 拥有 xxx,如学生有书,可以让书这个类 作为学生的属性。

    五、super 关键字

    在子类中重写方法时,super 关键字可以让调用者跳过这一层而调用父类中的方法。

    • 作用:
    • 直接 调用父类中的某一方法。
    • super 处在对象方法中,就是调用父类对应的对象方法;处在类方法中,就是调用父类对应的类方法。
    • 使用场景:子类在重写父类方法时,想要保留父类的一些行为。

    待续。。。

    相关文章

      网友评论

          本文标题:04-OC、继承

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