1.封裝的概念
(1)封裝,顧名思義就是將東西包裹起來,不讓外部訪問
(2)面向對象的封裝是針對類進行封裝
(3)類是由屬性和方法構成的,對類的封裝就是對屬性和方法的封裝
1.1屬性的封裝 是讓外部不能直接訪問該屬性
權限修飾符用來修飾實例變量
(1).@public: 公共的,本類內部和外部的類,都可以訪問
(2).@protected: 受保護的,本類內部和子類,都可以訪問
(3).@private: 私有的,只允許本類訪問
(4).@package: 包,整個框架都可以訪問
1.2 類的封裝
我們如果把一個方法看做一個整體,方法即是一段功能實現(xiàn)的代碼段
將功能封裝成一個獨立的方法,這樣即可以重復調用,并且調用者不需要關心此方法實現(xiàn)的具體細節(jié)
2.繼承
(1) 繼承是指類與類之間的繼承關系
(2)子類繼承于父類,子類可以將父類的屬性玻驻、方法繼承下來
(3)OC中類與類的繼承語法:@interface 子類 :父類
(4)父類有的屬性,子類不允許再次定義
(5)父類的非私有屬性和方法,子類都可以繼承
3.多態(tài)
1.多態(tài)是指一種類型,具有多重表現(xiàn)形態(tài)悼凑。
2.不同的子類繼承同一個父類,這些子類可以看做是同一類型,子類覆蓋父類的方法,每個子類實現(xiàn)的功能不相同,這就是多態(tài)的表現(xiàn).
- 必須存在繼承關系
- 必須要有方法的覆寫
- 父類的聲明指向子類的實例
3.方法重寫,覆寫
- 子類要覆寫父類的方法,他們必須要存在繼承
- 方法的定義必須一樣
- 如果子類沒有覆寫父類的方法,那么直接調用父類的方法
- 用self調用自身方法,如果這個方法沒有被實現(xiàn),那么會去父類找有沒有這個方法, 如果父類也沒有,會一直找到基類NSObject,如果還沒有就崩潰,
- 在類本身沒有這個方法,然后父類有,用self調用這個方法相當于[super test];
4.#import與@class
1. #import 導入一個頭文件,獲取該頭文件中類的定義—方法和屬性
2.@class 告訴編譯器有這么一個類,具體這個類怎么定義的一無所知
3·在頭文件里要使用其他類,一般用@class, 在實現(xiàn)文件用#import導入類文件
4.解決相互導入問題