Oc作为c扩展的面向对象语言,具有面向对象语言的三大基本特性:封装,继承,多态
继承是指每一个类只能有一个基类,子类自动继承基类的实例变量,属性,实例方法,类方法
所有根类是NSObject
继承有两层含义:子类复用基类成员;将子类当作父类来使用
子类自动继承基类的初始化器;子类也可以重写基类初始化器,但此时子类初始化器必须首先调用基类的一个初始化器,且手工调用。
子类可以选择继承基类析构器,或者重写基类析构器;子类析构器执行完毕后,会自动调用基类析构器(后置调用,且不支持手工调用)
多态是子类在父类统一行行为接口下,表现不同的实现方式。
子类重写父类同名同参数方法:子类只可以重写父类方法
方法名相同,参数不同的:oc不支持方法的重载
在子类代码中,可以使用super来调用基类的实现
self具有多态性,可以指向不同子类;super没有多态性,仅仅指向父类,子类析构器自动具有多态性
注意:尽量避免在父类init和dealloc调用子类重写的方法
网友评论