码迷,mamicode.com
首页 > 其他好文 > 详细

OC三大特性之继承

时间:2014-12-11 15:18:32      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   使用   sp   on   div   

一.基本概念

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

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

bubuko.com,布布扣

在这里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);
}

@end

int main()
{
    Person *p = [Person new];
    
    [p setAge:10];
    
    [p test];
    
    return 0;
}

 

 

OC三大特性之继承

标签:style   blog   http   io   color   使用   sp   on   div   

原文地址:http://www.cnblogs.com/cwhking/p/4157414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!