什么是继承
众所周知,面向对象的编程语言具有: 抽象性, 封装性, 继承性, 以及多态性 的特征. 那么什么是继承呢? 传统意义上是指从父辈那里获得父辈留下的东西
在开发中,继承就是"复用类"(拿来主义),对类进行一定的扩展, 来创建新的对象.实际上除了开发, 在实际生产中也是如此规律。
基类与派生类的关系
1.派生类是在基类的基础之上设计出来的, 其目的是扩展基类的功能或修改基类功能.
派生类包含了基类的所有特征与功能(子类继承了父类的所有的内容)
2, 继承是扩展基类的功能
继承允许扩展基类的功能. 例如继承父类后, 添加自己独有的方法
例如人有自我介绍的方法, 老师有教书的方法, 学生有学习的方法
3, 继承允许修改基类的功能
如果在继承中, 发现基类方法的具体实现不是非常完整或不是非常合理, 就需要利用重写的办法, 让子类修改父类的具体方法的实现.
例如, 动物会吃, 会叫, 然后子类 dog 也会吃 和 叫.
继承的注意事项
1, OC 是单继承
@interface MyClass : BaseClass
2, 子类不允许提供父类相同的变量(应该继承下来)
3, 实际开发中常常利用多层继承
4, 派生类的对象调用方法的索引顺序
Person ( sayHello() )
Student:Person ( )
SmallStudent:Student( sayHello() )
Student *stu = [Student new];
[Stu sayHello];