第四章
4.2 继承
Object-C不支持多继承,而使用其他方式达到多继承的目的,例如category/protocol
4.3 继承的工作机制
跟C++一样,OC编译器使用“基地址+偏移量”的机制实现继承关系中的多态。
脆弱的基类问题(fragile base class problem):现在的编译器生成的程序中,这些偏移位置是通过硬编码实现的;如果希望向NSObject中添加其他变量,无法实现,因为这样会改变所有实例变量的偏移位置。在Leopard系统中引入新的64位OC运行时(使用间接寻址方式确定改变的位置)从而解决了这个问题。
思考:C++和Java也存在该问题,怎么解决?
4.4 重写方法
调用超类的方法的语法:[super setFillColor: color];