A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 364136862qq 初级黑马   /  2015-4-22 22:23  /  793 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类的延展和扩展是一个意思吗?还有它们跟分类有什么区别啊?

2 个回复

倒序浏览
本帖最后由 仰望的繁华 于 2015-4-22 23:21 编辑

分类可以单独写在.h .m文件里,也可以写在原类.h .m中。
后一种情况,如果把 分类的声明和实现都写在 .m中。(即:.h中的分类声明,挪到.m中。)
就叫延展。
同时由于.h中没有它的声明,而一般头文件只包含.h文件。
所以其他类或文件,会因为缺少声明而无法调用它其中的方法。
因此延展中的方法,只能在原类的实现中调用(前提时声明位置写在调用之前),即实现了私有方法。(以上内容,视频中只说了书写位置,没听到延展这个词,我是搜索总结出来的思路,核心就是一句:没有包含声明,无法调用。)
这个问题问的好,一次提问,弄懂 延展+私有方法。
另外你再去补充一下,实现私有成员变量的两种方法。(这个视频里有详细讲解)
以上三点合在一起,基本上算是完美解决一道入学测试题了。

回复 使用道具 举报
延展类别又称为扩展(Extendsion)
Extension是Category的一个特例 其名字为匿名(为空),并且新添加的方法一定要予以实现。(Category没有这个限制) @interface Student ()
@end
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马