美文网首页
分类category&扩展extension

分类category&扩展extension

作者: 滨滨_57b5 | 来源:发表于2018-12-17 17:12 被阅读0次

    分类

    分类都能做哪写事情?

    分类和继承的区别

    • 分类可以实现功能分类的封装
    • 另外分类更符合面向对象的核心原则“开放封闭原则”,对扩展开放,对修改封闭

    分类和扩展的区别

    • 扩展可以直接添加属性,分类不能直接添加属性
    • 扩展的方法必须要实现,分类的方法不一定要实现
    • 分类是在运行时才将分类中的方法添加到宿主类上的
    • 为系统类添加分类,扩展是不可以的

    分类中可以添加哪些内容?

    • 实例方法
    • 类方法
    • 协议
    • 属性 在分类中声明属性,系统只是默认生成了set和get方法,并没有自动生成实例变量
    • 实例变量/成员变量 不能直接添加,需要通过runtime的关联对象才能添加

    扩展

    一般用扩展做什么?

    • 声明私有属性
    • 声明私有方法
    • 声明私有成员变量

    分类和扩展的区别

    • 扩展是编译时决议的,分类是运行时决议的
    • 扩展只声明不实现,放在宿主类的.m文件中,分类是既声明又实现
    • 不能为系统类添加扩展,可以为系统类添加分类

    相关文章

      网友评论

          本文标题:分类category&扩展extension

          本文链接:https://www.haomeiwen.com/subject/kbrqkqtx.html