分類和協議
有時候在處理類定義的時候,可能想要為其新增一些新方法,但是由不想通過新建很多子類來繼承並且增加新方法,這個時候分類就有了用處。相當於在使用的時候只要註明是哪個分類。
下面用例子來說明:
#import
"fraction.h"
@inte***ce
fraction (tests)
-(void
)printftest;
@end
/*這部分宣告了fraction
類的乙個分類,名字叫test
,增加了乙個方法。 */
@implementation
fraction(tests)
-(void
)printftest
@end
/*這裡實現了分類新增的方法 */
intmain (
intargc,
const
char
* argv)
/*這裡通過主函式的呼叫簡單地演示了怎麼使用分類 */
注意點1、
儘管分類可以訪問原始類的例項變數,但是它不能新增自身的任何變數,如果要新增自身的變數那麼需要的是考慮建立子類;
2、分類可以過載類中的乙個方法,但是這是一種拙劣的設計習慣,其一,過載了乙個方法以後就不能訪問原來的方法,就要把原先的方法的功能全部賦值到信的方法中,如果建立了子類,那麼就可以用super
的方法來呼叫父類的方法;
3、通過使用分類擴充套件這個類不僅對這個類有影響,對他的所有的子類也有影響。
4、和介面不同的是,分類不必實現所有的方法,可以日後再去實現。
協議是多個類共享的乙個方法列表。協議中列出的方法沒有相應的實現,協議提供一種方式來使用制定的名稱定義一組多少有點相關的方法,常有文件說明,從而在自己定義的類中來實現他們。
@protocol +
協議名定義協議的方法
可選擇是否實現的方法
@required+
需要實現的方法
@end
在定義類的時候使用:(注意對於分類也可以使用)
@inte***ce
fraction
:nsobject <
協議》實現
@end
具體的協議的使用在iphone
開發中總結。
OC分類和協議
分類 分類是給原有的類擴充一系列的方法,在不改變源 的情況下給類新增 方法的簡便方法,無需建立子類。分類的一些注意事項 1,分類不能新增成員變數,自能訪問原始類的成員變數 2,分類可以重寫原類的方法,但是這樣做會導致原類的方法不能再使用 3,可以建立多個分類 4,分類宣告的方法不必全都實現 5,通過...
Objective C 學習筆記 11 分類和協議
當我們需要為乙個類增加方法的時候,通常我們只需要繼承這個類,然後在子類中增加方法即可。然而,這種方式並不是總能奏效的,特別是當我們沒有該類的源 而需要重新編寫該類的某個函式的時候。類別這種技術就允許我們對已經存在的類不用繼承也可以為其增加功能。宣告fractionmath的標頭檔案 import f...
OC中的分類和協議
oc中經常使用分類和協議,分類和協議在專案後期可能會經常用到,尤其是為某個已經成熟的模組新增功能的時候。因為 1 使用分類 category 可以以模組的方式向類新增方法 2 建立標準化的方法類表供其他人實現 下面將對分類和協議做乙個詳細介紹。一 分類 使用場景 1 有時候在處理類定義時,可能想要為...