分类 类扩展 继承 协议 委托

分类(Category)

  • 只能扩展方法(随便.m文件)
  • 声明的@property只会生成getter setter方法的声明
  • 不产生新类,不修改原类
  • 同名方法,分类的优先级高
    类别主要有3个作用:
    (1)将类的实现分散到多个不同文件或多个不同框架中。
    (2)创建对私有方法的前向引用。(类不声明但实现方法有警告,若在分类中声明一下就消除警告)
    (3)向对象添加非正式协议。(括号是非正式协议,尖括号是正式协议) 非正式协议的方法可以不实现

类扩展(Extensions)

  • 声明的方法必须实现(在类的.m文件中)
  • 可以添加实例变量
  • 不产生新类
  • 匿名(私有)的分类

协议(Protocol)

  • 声明的@property只会生成getter setter方法的声明
  • 只声明方法,由代理实现方法
  • 支持多继承

委托(delegate)

  • 主要用于解耦

类继承(Inherit)

  • 能修改方法 添加实例变量
  • 产生了新类
  • 同名方法,分类的优先级高

你可能感兴趣的:(分类 类扩展 继承 协议 委托)