7 多態

多態

這裏寫圖片描述

Override 重寫

重寫只能重寫方法。對屬性的重寫實際上應該是重寫屬性的SetterGetter方法。
在子類中使用self調用方法,如果該方法已經被override,則會調用子類的方法。如果需要調用被覆蓋的父類的方法實現,則需要使用[super methodName];來進行調用。

經典多態調用

變量聲明成爲父類指針之後,可以被賦值成爲子類對象,並可以在被賦值調用子類的所有方法和屬性。雖然被聲明的指針是父類指針,但是指針任然以實際類型爲準。
因此可以用父類指針,多態的調用各種子類對象的方法。

SuperClass * point = [[SonClass alloc] init];
[point method]; // 實際調用的是SonClass的method方法,而不是SuperClass的method方法。
point = [[SonClassB alloc] init];
[point method]; // 實際調用的則是SonClassB的method方法。
發佈了35 篇原創文章 · 獲贊 9 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章