一. 封裝:將實現細節進行隱藏,將屬性私有化,通過公共的方法訪問私有的屬性,這個過程就是對對象的封裝
好處:1.給數據進行了過濾,保證數據的正確性
2.增加了代碼的重用性
3.將屬性進行了私有化,可以保證屬性的安全性
重寫:當子類當中有與父類同名(同名,同參,同返回值,同類型)的方法的時候,叫重寫
//當重寫發生的時候,子類會直接調用本類當中的同名方法,父類當中的方法相當於被覆蓋了,不會再發生調用。
//重寫作用:就是子類的同名方法當中想要實現一些屬於本類的功能。
注意:方法可以重寫,但成員變量不可以重寫命名,會造成重複命名。
二. 繼承的定義:有兩個類A類與B類,如果說A類繼承了B類,就說A類擁有了B類的所有屬性和方法。
*繼承者叫子類 被繼承者叫父類(超類)
*繼承是單繼承,只有一個直接的父類,一個父類可以有多個子類
*優點:節省代碼,提高效率,跳高代碼的重用性,安全性,方法修改代碼。
*由於對象之間有了繼承關係,纔會有多態。
*缺點:耦合性強(依賴性高)
*場景:可以用“誰是誰”來表述,就可以使用繼承。前面的繼承後面的類
比較:組合模式的使用:用“誰擁有誰”來表述,就使用組合,後面的屬於前面的
*NSObject是所有類的父類(基類),他沒有父類。
*尋找方法路徑:先在本類的方法列表中找要調用的方法,找到了,就直接使用,找不到就到父類中找,找到方法後,調用,找不到,繼續向上找。一直找到NSObject,還沒有找到,說明,沒有這個方法
三.多態:
定義:一種事物的多種形態
前提:類與類之間要先有繼承
程序中的表述:父類的指針指向子類的對象,就叫多態
動態綁定:在運行的階段纔會真正的識別對象的真正類型
作用:增加方法的擴展性
注意:當讓指向子類對象的父類指針,調用子類對象的私有方法的時候,要進行強制轉化。
1》self
self:在那個方法裏面,self就代表什麼
*在對象方法裏面,self代表對象
*在類方法裏面,self代表類
注意:*self只能在方法裏面使用
*使用self調用方法的時候,要防止自己調用自己,造成死循環
self可以調用其他的方法
使用:可以通過self調用成員變量,在調用成員變量的時候,一定是在對象方法內部,self代表的是對象
self可以通過->調用成員變量,在調用成員變量的時候,self一定代表對象,而且一定在對象方法裏