- 分類可以在不知道系統(tǒng)類源代碼的情況下痰哨,為這個類添加新的方法虽另;
- 分類只能添加方法,不能添加成員變量锨侯。通過分類增加的方法嫩海,系統(tǒng)分類增加的方法,系統(tǒng)會認為是該類的一部分
// 比如
#import <UIKit/UIKit.h>
@interface UIImage (WB)
/**
* 返回一張自由拉伸的圖片
*/
+ (UIImage *)resizedImageWithName:(NSString *)name;
@end
詳細說明:
- UIImage是系統(tǒng)的類囚痴,在不知道UIImage類源代碼的情況下叁怪,仍然可以通過分類為該類添加新的方法。而且這個方法成為了該類的一部分深滚。若有其他的類繼承自UIImage類奕谭,則UIImage的子類全部擁有resizedImageWithName:這方法。
從這個角度來看痴荐,分類和繼承最大的區(qū)別在于:
- 子類繼承了父類血柳,子類中增加的方法,不會成為父類的一部分生兆,即:假設(shè)A繼承自UIImage难捌,在類A中增加一個resizedImageWithName:方法,父類UIImage并不能使用這個方法鸦难,當(dāng)有新的B類根吁,繼承UIImage時,類B沒有resizedImageWithName:方法明刷。
- 繼承可以添加方法婴栽,也可以添加成員變量,當(dāng)然辈末,這個成員變量愚争,也僅限于子類中使用
應(yīng)用點
- 父類的方法聲明可以不實現(xiàn),在繼承于父類的子類中實現(xiàn)方法挤聘,而且轰枝,在子類中不必要再聲明;
- 分類中的方法组去,必須實現(xiàn)鞍陨。