一、繼承
繼承的上層:父類,繼承的下層:子類。
繼承是單向的,不能相互繼承。
繼承具有傳遞性:a繼承於b,b繼承於c,a具有b和c的特徵和行 為。
子類能繼承父類全部的特徵和行為。
特點:
oc中只允許單繼承。
沒有父類的類稱為根類,oc中的根類是nsobject(祖宗)。
繼承的內容:所有例項變數和方法。
如果子類不滿意父類方法的實現,可以重寫(overwrite)父 類的方法。
當子類繼承父類時,子類可以不重新宣告方法。子類呼叫從父類繼承的方法時,不是在呼叫父類的方法,子類呼叫的是自己的,只是父類提歐諾個了實現形式。
在類方法中,self表示呼叫這個方法的類,只能呼叫類方法,不能呼叫例項方法
在例項方法中,self表示呼叫這個方法的物件,只能呼叫例項方法,不能是類方法
super
super是編譯器指令,並非物件。
作用:給super發訊息,可以執⾏行父類中實現的方法。
二、初始化方法
建立物件分兩步:開闢空間、初始化。
初始化方法的主要作用是:為某些例項變數賦初值。
初始化方法在物件的整個生命週期裡只使用一次。
子類定義了除⽗父類中公共例項變數之外的例項變數。在自⾝身的 初始化方法中,優先向super傳送init訊息,初始化公共變數,初始化成功之後,再初始化自⾝身特有變數,從⽽而完成全部例項變數的初始化。
初始化過程
1. 自⼰己的初始化方法中,優先調⽤用父類的初始化方法
2. 父類的初始化方法中再調⽤用父類的初始化方法,依次往上調⽤用
3. 處於最上層的初始化完成之後,回到第二層的初始化方法中, 完成第二層的初始化。
4. 第二層的初始化完成之後,回到第三層的初始化方法中,依次 執行初始化方法,直到本類的初始化方法完成。
初始化方法特徵
1.初始化方法是 「-」方法
2.id或者instancetype型別的返回值
3.以init開頭
4.可以帶0到多個引數 內部實現:先執行super的初始化方法,再初始化自⾝身變數,return self。
三、便利構造器
便利構造器在初始化方法的基礎上前進了一⼩小步。封裝了物件建立過程。
便利構造器是「+」方法,返回本型別的例項,方法名以類名開頭。
可以有0到多個引數。內部實現:封裝了alloc和初始化方法。使用起來更加簡潔。
OC之繼承 初始化方法
一 繼承 繼承的上層 父類,繼承的下層 子類。繼承是單向的,不能相互繼承。繼承具有傳遞性 a繼承於b,b繼承於c,a具有b和c的特徵和行為。子類能繼承父類全部的特徵和行為。因為沒有,所以所有。物件導向提供了繼承語法,能大大簡化 把公共的方法和例項變數 寫在父類裡,子類只需要寫自己獨有的例項變數和方法...
OC之繼承,初始化方法,便利構造器
1.繼承 是物件導向程式設計的乙個核心,在objective c的繼承體系中,位於最頂層的根類是nsobject,繼承的方向是單向的,而且只能繼承乙個父類。繼承具有傳遞性,例如 學生繼承於人類,大學生繼承於學生,則大學生不但具有學生的成員變數和方法,而且也具有人類的成員變數和方法。2.初始化方法 顧...
OC3 繼承和初始化方法
繼承和初始化方法 乙個完整的初始化方法 每乙個類只在乎自己的初始化方法就可以了 如果乙個初始化方法在被別的初始化方法呼叫 來初始化一系列的成員變數 就把這個方法叫做指派初始化方法 指派初始化方法的作用 1簡化 2確保在使用其他的初始化方法的時候指派初始化方法中得 一定被呼叫 實現遍歷構造器方法 把初...