分类和协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分类和协议相关的知识,希望对你有一定的参考价值。

 

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

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

     

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

       

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

 

 

 

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

以上是关于分类和协议的主要内容,如果未能解决你的问题,请参考以下文章

分类和协议

解密体育背后AI黑科技:花样滑冰动作识别多模视频分类和精彩片段剪辑

文本分类

文本分类

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

Swift2.0(16)分类与协议