类别和延展

类别和延展

OC中有多继承么,如果没有,用什么代替?

  • OC不支持多继承,如果想要实现多继承的话,可以通过类别和协议来实现
  • protocol可以实现多个接口,通过实现多个接口可以完成多继承
  • category一般就是指分类,用category去重写类的方法,仅对本category有效,不会影响到其他类与原有类的关系

简述类别(分类)和延展

  • 类别:在没有原类.m的情况下,给该类添加方法。
  • 延展:就是给某类添加私有属性和私有方法
    区别:
  • 延展可以认为是一个私有的类目,延展可以添加属性,并且它添加的方法是必须要实现的
  • 类别可以在不知道,不改变原来代码的情况下往里面添加新的方法,只能添加不能修改删除
  • 类别中的方法优先级大于原类中的优先级,也就是说如果类别中有跟原方法中有重名的方法,会覆盖掉原类中的
  • 分类中的@property只能生成getter和setter方法的声明,而不能生成实现以及带下划线的成员属性,如果给分类添加了成员变量,是没办法初始化的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容