面向對象的三個基本特征
封裝是對象和類概念的主要特征,就是把客觀的封裝起來,隻對外暴露出來,并把自己的數據和方法隻讓可信的類或對象操作作用:隐藏實現細節,使得代碼模塊化
使用現有類的所有功能,并且無需重新編寫原來的類中的方法對這些功能的擴展,oc隻能實現單繼承,如果想要實現多繼承的話可以通過分類或者擴展實現(通過多級繼承來實現)實現方式:
- 實現繼承
- 接口繼承
- 可視繼承
作用:可以擴展已存在的代碼模塊封裝和繼承的作用都是為了代碼重用多繼承的實現:
- 協議 一個類實現多個協議用來達到實現多繼承的方法
- 分類 可以添加方法 添加實例 分類方便管理
- 消息轉發機制 runtime
實現過程:
- 動态方法解析 reslveInstanceMethod 檢查是否通過@dynamic 動态添加了方法
- 直接消息轉發 檢查是否實現forwardingTargetForSelector:是否實現,如果返回非nil或者非self 則直接調用
- 标準方法轉發 先處理方法調用再轉發消息,重寫methodSingnatureForSelector:和forwardInvocation方法,前者為該消息創建一個合适的方法簽名,後者則是将該方法轉發給其他對象
- 程序報錯
允許将子類類型的指針賦值給父類類型的指針,通俗的講就是子類可以通過不同的方法去實現父類中同一個方法實現方式:
- 覆蓋 子類重新定義父類的方法
- 重載 子類可以通過不同的方法調用父類的同一個方法
作用:實現接口的重用
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!