Categroy类别,又称为扩展类,在类的原基础上扩展方法,且不可添加变量,如果扩展的方法与原始类中的方法相同,则会隐藏原始方法,且不可在扩展方法中通过super调用原始方法,这里与继承不同。

定义: 下面演示在人的基础扩展为学生

定义类

Person.h

[objc] view plaincopyOC 类别(分类)CategroyOC 类别(分类)Categroy
  1. #import <Foundation/Foundation.h>  
  2. @interface Person : NSObject  
  3. @property(retain)  NSString *name;  
  4. @property(nonatomic,assign) int age;  
  5. @end  

Person.m

[objc] view plaincopyOC 类别(分类)CategroyOC 类别(分类)Categroy
  1. #import "Person.h"  
  2. @implementation Person  
  3. @end  


扩展

Person+Student.h   约定,类别的文件名为  扩展类+类别名.h

[objc] view plaincopyOC 类别(分类)CategroyOC 类别(分类)Categroy
  1. #import "Person.h"  
  2. @interface Person (Student)  
  3. -(void)studing;  
  4. @end  

Person+Student.m

[objc] view plaincopyOC 类别(分类)CategroyOC 类别(分类)Categroy
  1. #import "Person+Student.h"  
  2.   
  3. @implementation Person (Student)  
  4. -(void)studing{  
  5.     NSLog(@"学习ing");  
  6. }  
  7. @end  

main.m

[objc] view plaincopyOC 类别(分类)CategroyOC 类别(分类)Categroy
    1. #import <Foundation/Foundation.h>  
    2. #import "Person+Student.h"//导入时导入扩展的那个文件  
    3.   
    4. int main(int argc, const charchar * argv[])  
    5. {  
    6.   
    7.     @autoreleasepool {  
    8.         Person *p =  [[Person alloc] init];  
    9.         [p studing];  
    10.     }  
    11.     return 0;  
    12. }  

相关文章:

  • 2022-12-23
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2021-07-06
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案