Category

 

 使用注意:

 1.分类只能增加方法,不能增加成员变量

 2.分类方法实现中可以访问原来类中声明的成员变量

 3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用

 4.方法调用的优先级:分类(最后参与编译的分类优先) --> 原来类  --> 父类

 */

#import <Foundation/Foundation.h>

#import "Person.h"

#import "Person+MJ.h"

#import "Person+JJ.h"

 

int main()

{

    Person *p = [[Person alloc] init];

    //p.age = 10;

    

    // 优先去分类中查找,然后再去原来类中找,最后再去父类中找

    [p test];

   // [p study];

    

    return 0;

}

#import <Foundation/Foundation.h>

 

@interface Person : NSObject

{

    int _age;

}

@property int age;

- (void)test;

@end

#import "Person.h"

 

@implementation Person

- (void)test

{

    NSLog(@"Person-test");

}

@end

 

 

#import "Person.h"

 

@interface Person (JJ)

- (void)test2;

@end

#import "Person+JJ.h"

 

@implementation Person (JJ)

- (void)test2

{

    NSLog(@"-----test2");

}

 

- (void)test

{

    NSLog(@"Person (JJ)-test");

}

@end

 

#import "Person.h"

 

@interface Person (LJ)

- (void)study;

@end

 

 

#import "Person+LJ.h"

 

@implementation Person (LJ)

- (void)study

{

    NSLog(@"学习-----%d", _age);

}

 

- (void)test

{

    NSLog(@"Person (LJ)-test");

}

@end

 

posted @ 2016-03-28 11:16  lance.xiang  阅读(102)  评论(0)    收藏  举报