1.繼承:
當多個類出現部分相同的實例變量和方法時,就要考慮繼承(而不是先有父類再有子類,主要不是這個思想)
2.繼承的使用:
將多個類中相同的實例變量和方法提出來寫成一個公共的父類
子類繼承父類:會將父類中除了聲明爲@private的實例變量以及私有方法之外,其餘內容都會被繼承,所以如果子類中有和父類同樣的內容,可以全部刪除
私有方法:在.m文件中實現,但是沒有在.h文件中聲明的方法叫做私有方法,私有方法不允許在外部訪問,但是可以在本類中訪問
如果有方法是從父類繼承過來的,而子類又實現了該方法,我們叫做重寫父類的方法
繼承時的方法會存在三種情況:
1.保留父類對該方法的實現,(實現方式不重寫該方法)
2.按子類重寫之後的方式來實現(實現方式重寫該方法,只改變自己的實現體,完全忽視父類的實現,此時不需對方法聲明因爲已經繼承過來了)
3.對於該方法既有父類對該方法的實現,也有子類對該方法的實現
如何實現呢:
例如:[self eat]
使用self來調用自己的方法.super用來調用父類方法的實現(不是調用父類的方法(父類方法已經繼承過來的是自己的已經沒有父類這個概念))
- (void)eat
{
[supereat],此eat:super用來調用父類方法的實現(不是調用父類的方法(父類方法已經繼承過來的是自己的已經沒有父類這個概念))
NSLog(@"不吃了");
}
初始化時本類只對自己獨有的實例變量賦值即可
super調用父類對該初始化方法的實現,爲從父類繼承過來的實例變量賦值
_name = name;
_gender = gender;
_age = age;
便利構造器
作用:快速創建對象,內部封裝了創建對象的過程
格式:1. +方法
2.返回值類型爲id類型
3.以類名+with開頭,拼接上多個參數