黑马程序员技术交流社区

标题: OC语言的分类问题 [打印本页]

作者: 高李军    时间: 2014-6-30 09:09
标题: OC语言的分类问题
本帖最后由 高李军 于 2014-8-6 14:24 编辑

哪位大神可以解释一下OC语言里的分类问题,还有它和继承是什么关系??
作者: libra    时间: 2014-6-30 11:28
方法扩充,无他~
作者: 高李军    时间: 2014-7-1 02:40
精辟,讲的很好!
作者: sen    时间: 2014-7-1 11:20
分类category:重写类方法,不影响其他类与原有类的关系
作者: 刘元明    时间: 2014-7-1 15:32
本帖最后由 刘元明 于 2014-7-1 16:03 编辑

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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2