iOS開發之OC繼承 初始化方法 便利構造器

2021-07-04 12:40:20 字數 1636 閱讀 8878

一、繼承

繼承的上層:父類,繼承的下層:子類。

繼承是單向的,不能相互繼承。

繼承具有傳遞性: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確保在使用其他的初始化方法的時候指派初始化方法中得 一定被呼叫 實現遍歷構造器方法 把初...