第四章
4.2 繼承
Object-C不支持多繼承能扒,而使用其他方式達(dá)到多繼承的目的瓮恭,例如category/protocol
4.3 繼承的工作機(jī)制
跟C++一樣,OC編譯器使用“基地址+偏移量”的機(jī)制實(shí)現(xiàn)繼承關(guān)系中的多態(tài)蹦漠。
脆弱的基類問題(fragile base class problem):現(xiàn)在的編譯器生成的程序中戚嗅,這些偏移位置是通過硬編碼實(shí)現(xiàn)的;如果希望向NSObject中添加其他變量衍菱,無法實(shí)現(xiàn)赶么,因?yàn)檫@樣會(huì)改變所有實(shí)例變量的偏移位置。在Leopard系統(tǒng)中引入新的64位OC運(yùn)行時(shí)(使用間接尋址方式確定改變的位置)從而解決了這個(gè)問題脊串。
該問題的分析辫呻。
思考:C++和Java也存在該問題清钥,怎么解決?
4.4 重寫方法
調(diào)用超類的方法的語法:[super setFillColor: color];