一.類目spa
指向已知的類中添加新方法,不破壞封裝性。已知類能夠是自定義的類和系統的類。3d
1.類目的實現和聲明blog
建一個學生類,並增長類目io
(1).聲明(是在Student+Working.h中)變量
必須引入原類,這裏是Studnet類。方法
(2) .實現(是在Student+Working.m中)im
注意引入。d3
2.類目的使用協議
i.不能再類目中添加實例變量db
j.能夠爲一個類添加多個類目,但類目名和方法名不能重複
k.不能隨意重寫類目的方法
3.類目的侷限性
i.若是在類目中重寫父類的方法可能致使super消息的斷裂,由於在類目中的方法優先級高於父類。
j.沒法在在類目中添加實例變量。
二.延展
經過在本身的類的實現文件中添加添加類目來聲明私有方法,延展至關於一個匿名的類目。
1.聲明
在studnet.m文件中,在@implementation之上,方法是不須要實現的
延展不提供名稱表示必須實現,提供名稱能夠不實現。
2.實現
在studnet.m文件中,在@implementation和@end中實現方法。
以上在main.m中調用並打印的結果以下:
三.協議
聲明一些方法,讓別的類來實現,也能夠爲類增長方法
1.聲明一個協議
在文件中
2.在導入協議的頭文件
3.在文件中採用協議
4.並在文件中實現協議中的方法