OC裏的繼承和重寫

 

 1.@private私有成員是不能被繼承,也不能被外部函數訪問。

@public 公有成員能被繼承,也能被外部函數訪問。

@protected 保護成員能夠被繼承,不能夠被外部函數訪問。

2. 繼承後,父類公有的成員,子類繼承後還是公有的;父類受保護的成員,子類繼承後仍爲受保護的。

3. OC中成員函數都死公有的,可以被繼承,繼承後,仍然是公有的。

4. 子類之中繼承了父類中的保護和公有成員,如有私有屬性,先繼承部分屬性,然後添加私有屬性。

5. 超類 子類 --->強調相同

基類 派生類 --->強調不同

6. C++中可以sizeof子類得到子類的大小,但是OC中不能這樣,主要因爲OC編譯器遠沒有C++編譯器強大。Sizeof是編譯的概念,alloc是運行的概念,OCsizeof的調用在子類創建之前,sizeof自然不能達到我們的期望。OC中編譯時,不知道子類到底有多大。

7. 函數的重寫,從父類繼承的方法,可能這個方法並不適合子類,可以在子類中重寫父類的方法。

重寫之後,父類的對象調用父類的方法;子類的對象,調用子類的方法。不會引起衝突。從父類繼承的方法,不適用於子類時,可以直接聲明父類的同名函數,並定義。不用考慮父類中,函數已存在的問題。重寫後,子類就不能調用父類的方法。

8. OC中所有的函數都是虛函數,函數的重寫可實現多態性。

不同的(相近的)事物,在經過同一事件觸發時,產生不同的結果or響應,調用函數時,不看指針看對象。父類的指針可以指向子類的對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章