黑马程序员技术交流社区
标题:
使用分类 这种情况不用#import分类名
[打印本页]
作者:
doudou33420
时间:
2014-11-7 15:17
标题:
使用分类 这种情况不用#import分类名
定义一个分类 也就是给类增加扩展, 想使用扩展的功能必须先#import你的分类文件
但如果你在分类里重写原类里面的方法的话 不用#import分类文件 就可以使用分类重写的内容
例:
person类
有个run 方法 执行后 提示 person跑;
person.lf 分类
重写run方法 执行后 提示 分类跑;
student 继承person类; (student 里面没有import person.lf)
main 函数(也没有import person.lf
执行 student *s1 = [student alloc]init];
[s1 run];
结果: 分类跑
作者:
doudou33420
时间:
2014-11-7 18:35
刚有查了一下分类资料大致弄明白了为什么不用import
如果在类目中覆盖现有类的方法,这样会引起super的消息的断裂,因为类目中的方法具有更高的优先级,因此,一般不要覆盖现有类中的方法
就是因为 分类有更高的优先级, 所以在加载的时候 不管你有没有引用 他已经重写了父类的方法 你永远无法使用父类原来定义的方法了 只能使用分类重写的方法.
这么做是不被推荐的, 因为分类的思想是
在不更改原类的基础上
新增方法
如果我们都重写了 那父类的方法将不存在,
严重影响其他调用该方法的对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2