/*
Category分类:可以给某一个类扩充一些方法(不修改原来类的代码)
声明:
@interface 类名(分类名称)
@end
实现:
@implementation 类名(分类名称)
@end
总结:
分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法
使用注意:
1.分类只能增加方法,不能增加成员变量
2.分类方法实现中能访问原来类中的成员变量
3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法失效,不建议在分类中重新实现原来的方法
4.方法调用的优先级:分类(最后参与编译的分类优先)-->原分类-->父类
.h文件不会参与编译,只用来拷贝
.m文件才参与编译
【实际开发中一般是为系统自带的类写分类】
*/
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Person+Wea.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Person* p = [[Person alloc] init];
[p test];
[p student];
}
return 0;
}
#import <Foundation/Foundation.h>
@interface Person : NSObject
-(void)test;
@end
#import "Person.h"
@implementation Person
-(void)test{
NSLog(@"person的test方法");
}
@end
#import "Person.h"
@interface Person (Wea)
-(void)student;
@end
#import "Person+Wea.h"
@implementation Person (Wea)
-(void)student{
NSLog(@"student的方法");
}
@end