首页 > 代码库 > 分类和协议

分类和协议

 

--------分类--------

  • 分类可以模块化方法的定义,可以用于向现有的类添加新的方法。
  • 分类提供了一种简单的方式,用他可以将类的定义模块化到相关方法的组或分类中。它还提供了拓展现有类定义的简便方式,并且不必访问类的源代码,也无需创建子类。
  • 分类可以通过两种方法来实现:
    • 1.继承自一个分类:可以通过将分类名称括在类名称之后的圆括号中来确定方法所属的分类。可以继承自系统自带的,也可以继承自自己拓展的。
  • #import "Fraction"@interface  Fraction (NSObject)//确定了一个继承自NSObject的分类//在这里可以声明新的方法@end@implementation  Fraction (NSObject)//在这里可以实现新的方法或者重写NSObject(在于继承自哪个类)自带的方法
    @end

     

    • 2.类的拓展:创建一个未命名的分类,且在括号“()”中不指定名字。这种特殊的语法称为类的拓展。
    • #import "Fraction"@interface  Fraction ()//在这里可以声明新的方法@end@implementation  Fraction ()@end

       

  • 注意:
    • 1.如果在分类中覆写了父类中的方法之后,那么就再也不能访问原来的方法了。所以在分类中覆写方法要慎重。如果需要访问原来的方法可以通过新建子类来实现
    • 2.通过使用分类添加新方法来拓展类不仅会影响这个类,同时也会影响他的所有子类。

 

 

 

--------协议和代理--------

分类和协议