今天主要學習的就是obj-c中的繼承了,關於這個問題呢,其實我想只要學過其他語言的程式設計的話,基本上都會涉及到繼承,繼承可以說減輕了我們的**工作量,同時它也總結了事物的乙個共通的特性,共有的屬性我們就可以寫在統一的父類中。舉個例子來說,猴子和老鷹,他們都是生物,都可以進食、呼吸、求偶等,所以我們可以定義乙個共同的父類動物,但是猴子會爬樹,老鷹會飛,這就是他們各自不同的特點了,那麼至於各自不同的特點我們就可以在子類中來單獨實現。
那麼言歸正傳,我們先看下obj-c中繼承的語法:
@inte***ce subclassname:superclassname
我們再實際動手寫個例子來看下:
//定義乙個父類
@inte***ce rootclass
-(void)rootclassmethod1;
-(void)rootclassmethod2;
-(void)rootclassmethod3;
@end
@implementation rootclass
-(void)rootclassmethod1
-(void)rootclassmethod2
-(void)rootclassmethod3
@end
//定義乙個子類
@inte***ce subclass : rootclass
-(void)rootclassmethod1;
-(void)subclassmethod;
@end
@implementation subclass
-(void)rootclassmethod1
-(void)subclassmethod
@end
int main(int argc, char *argv)
程式最終的輸出結果如下:
output:
this is rootclassmethod1
this is rootclassmethod2
this is rootclassmethod1 overwrite in subclass
this is rootclassmethod2
this is rootclassmethod3
this is subclassmethod
ok,沒有什麼特別難以理解的地方,那麼我們為何要使用繼承呢,開頭也說過了,並不是為了繼承而去繼承,主要是為了我們可以通過對父類的繼承實現一定的擴充套件,繼承主要有以下幾種典型的用法:
1.**復用。兩個類有部分相同的**,那相同的部分我們就沒必要去複製貼上,完全就可以把公共的部分放在父類中,子類去繼承,只需要實現一次相同的部分即可。
2.建立協議類。父類為子類規定了一些方法,哪怕是空的,但我們可以預設為父類為他的子類建立了一種協議,當不同的類實現同名的方法的時候,程式就可以採用多型的設計。
3.通用效能的發布。程式設計師可以定義一些基本的、通用的、可以解決某些問題的類,但是沒有處理**,那麼其他的程式設計師可以建立子類來繼承並且滿足特定的需求。
4.需要對現有邏輯進行輕微改動。例如有個類在程式中的工作表現良好,但是另乙個程式設計師想要修改其中的某些引數,那麼他就可以繼承這個類,並且在子類中修改而無需涉及到父類。
5.功能預覽。子類可以幫助我們進行選擇測試,實現父類的一些方法,
還有乙個重點就是要記住,obj-c中的繼承是單繼承,不支援多繼承。
ok,今天的學習就到這裡了,其實到目前為止,學到的一些都是比較基礎的東西,所以這也打算是告誡自己,要把基礎打牢,不能直接上來就寫個hello world了事,持之以恆地學習才是王道。ps:明天要去爬山了,做下戶外運動,每天都是坐在電腦桌前敲**是不行的,偶爾也要放鬆一下,用我們老大的話來說就是先給你們帶個入門級別的戶外運動,所以我覺得我這輩子離不開從入門到精通這幾個字兒了,不過話說回來,又有多少技術或者東西,是我能入門但不能精通了的呢?希望不會累個半死然後都沒力氣寫部落格了,反正就算沒人看吧,我覺得在我個人來說,也是乙個學習的過程。
2023年04月20日,eric.tang 記
IOS 第七天筆記
一 include 指令1.檔案包含命令的格式 include 包含的是乙個使用者定義的檔案,可以是庫檔案,也可以是普通檔案 查詢循序 l 在當前檔案所在的路徑下查詢 l 如果上面沒有找到,到編譯器include路徑查詢 l 如果編譯器include路徑下沒有找到,系統的include路徑下查詢 l...
實習第七天
昨天經理說今天會刮颱風,所以我們要求停課比較好,畢竟我是乙個非常熱愛生命的人,這絕對不是因為我小時候差點被颱風刮走,真的不是因為這個!可是今天一大早,天氣很涼快,可是再如何涼快,還是沒有暴風雨即將來臨的感覺,為此我們捶胸頓足,為什麼停課,停課也不得不去,因為我們還得以實習生的身份過去,說起這ppt,...
第七天筆記
理解 陣列的基本概念 理解 陣列的分類 陣列的幾個名詞 陣列的應用場景 按維度分類 掌握 定義陣列 掌握 初始化陣列 掌握 陣列的使用 指定陣列的元素個數,對陣列進行部分顯式初始化 不指定元素個數,定義的同時初始化,它是根據大括號中的元素的個數來確定陣列的元素 個數 int nums 指定元素個數,...