运行时多态

运行时多态

多态:子类在父类统一行为接口下,表现不同的实现方式

对比重写与重载

子类重写父类同名同参数方法:子类只可重写父类方法

方法名相同,参数不同:OC不支持方法的重载

在子类的代码中,可以使用super来调用基类的实现

self具有多态性,可指向不同子类

super没有多态性,仅指向当前父类

初始化器

子类自动继承基类的初始化器

子类也可以重写基类初始化器,此时子类初始化器必须先调用基类的一个初始化器(手工调用)

析构器

子类可以选择重写继承基类析构器,或者重写基类析构器

子类析构器执行完毕后,会自动调用基类析构器(后置调用,且不支持手工调用)

子类析构器自动具有多态性

尽量避免在父类init和dealloc中调用子类重写的方法

你可能感兴趣的:(运行时多态)