溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

iOS開發(fā)篇——OC之面向?qū)ο蟮娜筇卣?/h1>
發(fā)布時(shí)間:2020-06-30 10:45:07 來源:網(wǎng)絡(luò) 閱讀:929 作者:藍(lán)鷗張浩 欄目:移動(dòng)開發(fā)

藍(lán)鷗iOS講師推薦:在學(xué)習(xí)OC的過程中會(huì)遇到面向?qū)ο蟮娜筇卣?,那么它們分別是什么呢?又有怎樣的差異呢?下面和我來了解一下吧!

一、封裝

封裝是對(duì)象和類概念的主要特性。它是隱藏內(nèi)部實(shí)現(xiàn),穩(wěn)定外部接口,可以看作是“包裝”。封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對(duì)象操作,對(duì)不可信的進(jìn)行信息隱藏。

好處:使用更簡單變量更安全可以隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié)開發(fā)速度加快

OC中一個(gè)類可以繼承另一個(gè)類,被繼承的類成為超類(superclass),繼承的類是子類(childclass),可以直接擁有父類中所有非私有成員(相關(guān)實(shí)例變量)、方法。繼承的實(shí)現(xiàn)在接口中使用符號(hào)“:”。

舉個(gè)例子:@interfaceStudent:NSObject{}不過大家要注意的是:屬性封裝實(shí)例變量,方法封裝具體實(shí)現(xiàn)代碼,類封裝屬性和方法。子類可繼承父類中的方法,還可重寫父類方法。

二、多態(tài)

多態(tài)性(polymorphism)是允許你將父對(duì)象設(shè)置成為和一個(gè)或更多的他的子對(duì)象相等的技術(shù),賦值之后,父對(duì)象就可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。不同對(duì)象以自己的方式響應(yīng)相同的消息的能力叫做多態(tài)。意思就是假設(shè)生物類(life)都用有一個(gè)相同的方法-eat;那人類屬于生物,豬也屬于生物,都繼承了life后,實(shí)現(xiàn)各自的eat,但是調(diào)用是我們只需調(diào)用各自的eat方法。也就是不同的對(duì)象以自己的方式響應(yīng)了相同的消息(響應(yīng)了eat這個(gè)選擇器)。

實(shí)現(xiàn)多態(tài),有二種方式,覆蓋,重載。

1)覆蓋:是指子類重新定義父類的虛函數(shù)的做法。

2)重載:是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。

三、繼承

面向?qū)ο缶幊?OOP)語言的一個(gè)主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對(duì)這些功能進(jìn)行擴(kuò)展。

通過繼承創(chuàng)建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。在考慮使用繼承時(shí),有一點(diǎn)需要注意,那就是兩個(gè)類之間的關(guān)系應(yīng)該是“屬于”關(guān)系。例如,Employee是一個(gè)人,Manager也是一個(gè)人,因此這兩個(gè)類都可以繼承Person類。但是Leg類卻不能繼承Person類,因?yàn)橥炔⒉皇且粋€(gè)人。

本章小結(jié):封裝可隱藏實(shí)現(xiàn)細(xì)節(jié),使代碼模塊化;繼承可擴(kuò)展已存在的代碼模塊(類);它們最終需要的結(jié)果(代碼重用)。多態(tài)是為了實(shí)現(xiàn)另一個(gè)目的(接口重用)。多態(tài)的作用,就是為了類在繼承和派生的時(shí)候,保證使用“家譜”中任一類的實(shí)例的某一屬性時(shí)的正確調(diào)用。

似乎看起來有點(diǎn)復(fù)雜,不過內(nèi)容其實(shí)也很簡單了,希望能夠?qū)τ行枰耐瑢W(xué)們有所幫助!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI