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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高李军 中级黑马   /  2014-6-30 09:09  /  1295 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高李军 于 2014-8-6 14:24 编辑

哪位大神可以解释一下OC语言里的分类问题,还有它和继承是什么关系??

4 个回复

倒序浏览
方法扩充,无他~
回复 使用道具 举报
高李军 来自手机 中级黑马 2014-7-1 02:40:30
藤椅
精辟,讲的很好!
回复 使用道具 举报
分类category:重写类方法,不影响其他类与原有类的关系
回复 使用道具 举报
本帖最后由 刘元明 于 2014-7-1 16:03 编辑

OC中的分类是用于给一个OC类扩充方法,这个类可以是自定义的Person等类,也可以是系统自带的NSString等类。分类的一个很大的好处就是你可以给一个给定类名的类拓展方法,当然可以给自己曾经写的类增加方法,即使你的那些源代码已经没法看到。至于分类和继承的关系,我个人觉得它们俩可以比较无非是在方法扩展上,继承一个类你可以拥有父类的所有成员变量和方法(当然能不能访问的问题在这就不提了),子类可以重写父类的方法,分类也可以覆盖原始类的方法,当分类中存在与原始类存在同样的方法时,方法调用会是分类中的方法,这样也算是对原始类的一种覆盖。
对于两者的使用场合我认为还是比较明显的,你不会为了增加一个方法就继承一个类吧,那就用分类;如果你需要父类的很多信息,而且两者可以是子类是父类就用继承
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马