面对对象的三个基本特征:
封装 encapsulation
继承 inheritance
多态 polymorphism
1.继承
含义:复用父类的成员。类型抽象:将子类当作父类来使用(is-a)。
OC中只支持单继承,而且必需要有一个父类。如果没有指定的父类,可以指定NSObject(所有类的基类)。
继承的成员:
实例变量
shape->_data = 20; //子类调用父类的实例变量用"->"
属性
实例方法
类方法
技巧:默认实例变量只能在实现类内中访问,但如果外部要访问的话。可在接口头文件中将实例变量指定为@public。
@interface Shape : NSObject {
@public int _data;
}
2.多态 (运行时多态)
override 重写父类的方法,重写就是跟父类方法名参数名相同的方法。
OC本身不支持方法的重载。
super 代表基类,子类中调用基类的方法。
self 代表当前对象,具有多态性。
//父类的引用指向子类的对象
Shape *rect = [[Rectangle alloc] init];
void process(Shape* shape){
shape.no++;
[shape draw]; //多态调用
}
子类自动继承父类的初始化器,也可重写父类的初始化器,但必须手动调用父类的初始化器。
子类继承父类的析构器,也可重写父类的析构器方法,子类的析构器执行完,会调用父类的析构器(后置调用)。析构器是具有多态性的。
网友评论