一.基本概念
继承是面向的三大特征之一,指的是在一个类的基础上,定义一个新类;原本的类成为父类(基类),新类称为子类(派生类)。
生活中,继承的例子也是数不胜数,比如一个儿子继承了他父亲,那么他就享受他父亲的财产了,当然不是全部,详细解释见下文。
在这里Animal是Dog类和Brid类的父类。
继承的好处:
- 抽取出了重复的代码
- 建立了类和类之间的联系
- 不改变原来模型的基础上,拓充方法
继承的缺点:
- 耦合性太强
二.OC中的继承
@interface Animal:NSObject //动物里继承了NSObject,获得NSObject类的方法; @end @interface Dog :Animal //dog类继承Animal类 @end @interface Brid:Animal //Brid类继承Animal类 @end
三.编程的使用注意
- 父类必须声明在子类的前面
- 子类不能拥有和父类相同的成员变量
- 调用某个方法时,优先去当前类中找,如果找不到,去父类中找
四.继承的使用场合
- 它的所有属性都是你想要的,一般就继承
- 它的部分属性是你想要的,可以抽取出另一个父类
五.关键字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; }
时间: 2024-10-23 04:58:51