运行时多态
多态:子类在父类统一行为接口下,表现不同的实现方式
对比重写与重载
子类重写父类同名同参数方法:子类只可重写父类方法
方法名相同,参数不同:OC不支持方法的重载
在子类的代码中,可以使用super来调用基类的实现
self具有多态性,可指向不同子类
super没有多态性,仅指向当前父类
初始化器
子类自动继承基类的初始化器
子类也可以重写基类初始化器,此时子类初始化器必须先调用基类的一个初始化器(手工调用)
析构器
子类可以选择重写继承基类析构器,或者重写基类析构器
子类析构器执行完毕后,会自动调用基类析构器(后置调用,且不支持手工调用)
子类析构器自动具有多态性
尽量避免在父类init和dealloc中调用子类重写的方法