OC中類的三大特性 封裝 繼承和多型

2021-06-27 15:10:13 字數 2228 閱讀 1872

oc是一門物件導向的變成語言,具有面向兌現的最基本的特徵:封裝性、繼承性、和多型性。

一.封裝

為何要用封裝?

當定義了乙個類時,類中的資料不允許外界訪問,或者允許外界只能讀取不能修改而需要隱藏時,就需要用到 set方法或者get方法。

1.oc中的set方法

作用:提供外界設定成員變數值,對引數進行過濾

規範:1>方法名必須以set開頭,後面跟上首字母大寫的成員變數的名稱

2>方法的返回值為void

3>方法形參的名稱不能跟成員變數名一樣

2.oc中的get方法

作用:返回物件內部的成員變數

1>方法的返回值型別與成員變數型別一致

2>方法名跟成員變數名一樣

3>不需要接受任何引數

例如:

/*

*建立類student

*成員變數:_age

*/@inte***ce student :nsobject //類的定義

- (void)setage : (int)newage;//set方法的定義

- (void)age;//get方法的定義

- (void)study;//study方法的定義

@end

@implementation student //類的實現

- (void)setage : (int)newage //set方法的實現

- (void)age //get方法的實現

- (void)study //study方法的實現

@end

二、繼承

繼承的標識為英文的「:」冒號,使用繼承可以定義乙個具有父類所有功能(成員和方法)的新類,它繼承了父類的功能。

為何要使用繼承?

將所有重複的內容合併在一起,可以使**有效率,簡潔,才意味著是乙個成功的架構。否則,修改**時需要修改多處,就很容易出錯。

1.繼承的根類

大多都繼承自 nsobject 類,所以在定義乙個類時,要繼承nsobject 類。

2.使用注意

1>父類要寫在子類前面

2>oc中不允許子類中擁有和父類中相同名稱的成員變數

3>oc中子類可以重寫父類方法,當呼叫子類時優先呼叫子類方法

4>繼承造成類與類之間耦合性太強,若父類不見,則子類不能使用

例如:

/*

*定義乙個person類,定義乙個student類,student繼承自person,則student為person的子類,person為stuent的父類

/@interfence person :nsobject //定義父類

- (void)eat;//定義父類方法

@end

@implementation person //父類的實現

- (void)eat //實現父類方法

@end

@interfence student : person //定義子類繼承person類

@end

@implementation student

@end

//則雖然在子類student中沒有定義_age和_weight,因為子類繼承了父類person,所以子類擁有了父類中所有的成員和方法

三、多型

要想體現出多型性,則必須有繼承。

1.多型的體現

父類指標指向了子類物件

2.多型的好處

1>引數中使用父類型別,則可以傳入父類和子類物件

2>可以把多個函式集成為乙個函式,簡化**

3.多肽的侷限性

父類型別的變數不能用來呼叫子類的方法

例如:

/*

*定義兩個類,乙個為animal為父類,乙個為dog為子類

*/@inte***ce animal : nsobject

- (void)eat;

@end

@implementation animal

- (void)eat

@end

@inte***ce dog : animal

- (void)run;

@end

@implementation dog

- (void)run

@end

//這個函式是專門用來喂動物的

void feed(animal *animal)

int main()

OC的三大特性之繼承

繼承的好處 1 抽取重複 2 建立了類之間的關係 3 子類可以擁有父類中的所有成員變數和方法 注意點 1 基本上所有類的根類是nsobject import animal的宣告 inte ce animal nsobject void setage int age int age void setw...

OC三大特性之繼承和多型

一 繼承 1.概念 程式裡的繼承子類繼承了父類,那麼子類就擁有父類中的所有成員變數和方法,這跟現實中的狗是動物的一種,狗也具備了動物 所必備的屬性,更符合我們的理解。2.繼承的好處與缺點 1 抽取出了重複的 2 建立了類和類之間的聯絡 繼承的缺點 耦合性太強 3.繼承的例項 inte ce anim...

python物件導向的三大特性 封裝 繼承 多型

python物件導向的三大特性 封裝 繼承 多型 定義乙個類 class person def eat self print 吃 def sleep self print 睡覺 建立乙個人的物件p,它可以呼叫person類的方法 p person p.eat p.sleep class person...