面向对象
1. 封装
2. 继承:一个类型在另一个类型的基础上扩展
3. 多态:不同类型针对同一接口的不同实现方式
继承
每一个类有且只有一个基类,如NSObject
1. 继承了什么?实例变量、属性、实例方法、类方法
例如[
(@public定义公共实例变量)
_data这个实例变量定义在Shape里面,但是由于Circle继承了Shape,因此Circle中也可以访问_data(使用->)
no(属性)也是从Shape里面继承的
draw、move、print等实例方法,process(类方法)也都是从Shape里面继承的
]
2. 所有类的根类:NSObject
阅读参考文档
子类复用父类成员
公有和私有实例变量都会被子类继承,但是访问不到
继承的内存模型
子类里能够找到和父类完全一样的内存结构