美文网首页
2021-04-22

2021-04-22

作者: 是超超呀 | 来源:发表于2021-04-22 16:41 被阅读0次

类别 扩展 继承

继承:一个类(子类)继承于另一个类(父类),那么子类不仅拥有父类所有的属性和方法,而且可以创建属于自己的属性和方法。

扩展(extension):不仅可以增加方法,还可以增加实例变量(或者属性),只是该实例变量默认是@private类型的( 作用范围只能在自身类,而不是子类或其他地方)。

分类(category): 只能添加方法,不能添加属性,因为分类中的可以写@property, 但不会生成setter/getter方法, 也不会生成实现以及私有的成员变量(编译时会报警告)。

可以在分类中访问原有类.h中的属性,分类是给原有类添加方法的,在分类的结构体指针中,没有属性列表,只有方法列表,原则上不能添加属性,实际上可以通过其他方式添加(通过runtime解决没有setter/getter的问题)。

如果分类中有和原有类同名的方法, 会优先调用分类中的方法, 就是说会忽略原有类的方法。所以同名方法调用的优先级为 分类 > 本类 > 父类

扩展和分类区别:

extension在编译期决议,它就是类的一部分,在编译期和头文件里的@interface以及实现文件里的@implement一起形成一个完整的类,它伴随类的产生而产生,亦随之一起消亡

category则完全不一样,它是在运行期决议的。 就category和extension的区别来看,extension可以添加实例变量,而category是无法添加实例变量的(因为在运行期,对象的内存布局已经确定,如果添加实例变量就会破坏类的内部布局,这对编译型语言来说是灾难性的)。

类扩展不能像分类那样拥有独立的实现部分 @implementaton 部分。也就是说,类扩展所声明的方法必须依托对应的类的实现部分来实现。

相关文章

  • bitshares比特股数据20210422

    2021-04-22比特股BTS大额转账的记录 时间转出转入BTS数量00:56:33zbbts001zbsend...

  • 浪漫的梦,一颗独立自由的灵魂

    原创 储建明 2021-04-22 10:18 ——《梦游天姥吟留别》教学新探索 图片 [提要]李白的《梦游天姥吟...

  • 谷雨

    2021-04-22 小雨 谷雨细雨连绵暮春到,雨生百谷夏将至。今天迎来了春季的最后一个节气———谷雨。 “清明...

  • OC CodeBlock

    创建时间:2021-04-22 本文旨在将编码过程变为模块化、对象化的过程 判断文件夹下是否存在指定文件(根据文件...

  • 班主任日记6

    2021-04-22 星期四 本以为一个调皮的学生暂时的离开,能带来相对的平静。 没有想到,不到24小时,...

  • 风生水起(40)

    2021-04-22 说阴天吧?刚才有太阳,说多云吧?又不太准确!(我也不知道今天是什么天气,写个天气状况也这么难...

  • 牵一发而动全身

    我怎么如此幸运-99将帅挑战赛46-重生229-戴红霞(2021-04-22) 我怎么如此幸运-牵一发而动全身 1...

  • #1000/3完成数# 分寸感,公司和个人的分寸感自己总是无法分

    2021-04-22 在上午报销发票的时候,突然意识到了一件事儿,自己有的时候无法分辨是公司和个人,之前在1月份的...

  • 还在为人际关系发愁,看看人性的弱点

    2021-04-22 你有没有人际关系的困扰?跟伴侣吵架、冷战,总觉得ta不理解你,不体谅你;不知道办公室里怎么跟...

  • 2021年四月复盘

    2021-04-22,小雨转晴,办公室 最美人间四月天。可是今年的春天尤其的冷,都快五一了还穿的厚厚的,屋子里也阴...

网友评论

      本文标题:2021-04-22

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