首页 > 代码库 > OC三大特性之继承

OC三大特性之继承

一.基本概念

继承是面向的三大特征之一,指的是在一个类的基础上,定义一个新类;原本的类成为父类(基类),新类称为子类(派生类)。

生活中,继承的例子也是数不胜数,比如一个儿子继承了他父亲,那么他就享受他父亲的财产了,当然不是全部,详细解释见下文。

在这里Animal是Dog类和Brid类的父类。

继承的好处:

  1. 抽取出了重复的代码
  2. 建立了类和类之间的联系
  3. 不改变原来模型的基础上,拓充方法

继承的缺点:

  1. 耦合性太强

二.OC中的继承

@interface Animal:NSObject//动物里继承了NSObject,获得NSObject类的方法;@end @interface Dog :Animal//dog类继承Animal类@end@interface Brid:Animal//Brid类继承Animal类@end

三.编程的使用注意

  1. 父类必须声明在子类的前面 
  2. 子类不能拥有和父类相同的成员变量 
  3. 调用某个方法时,优先去当前类中找,如果找不到,去父类中找

四.继承的使用场合

  1. 它的所有属性都是你想要的,一般就继承
  2. 它的部分属性是你想要的,可以抽取出另一个父类

五.关键字super

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

作用:

(1)直接调用父类中的某一个方法

(2)Super处在对象方法中,那么就会调用父类的对象方法;super处于类方法中,那么就会调用父类的类方法。

使用场景:子类在重写父类方法时,想要保留父类的一些行为。

#import <Foundation/Foundation.h>@interface Person : NSObject{    int _age;}- (void)setAge:(int)age;- (int)age;- (void)test;@end@implementation Person- (void)setAge:(int)age{    self->_age = age;}- (int)age{    return self->_age;}- (void)test{    // self:指向了方向调用者,代表着当期对象    int _age = 20;    NSLog(@"Person的年龄是%d岁", self->_age);}@endint main(){    Person *p = [Person new];        [p setAge:10];        [p test];        return 0;}

 

 

OC三大特性之继承