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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 3-_-3 中级黑马   /  2014-10-23 15:11  /  1104 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

例如我们生命了一个类
@interface Student
-(void)Test;
@end
这个类的方法也在实现文件中实现了,这时如果我们在分类中实现了同样的方法
@interface Student(Test)
-(void)Test;
@end
能正常运行但为什么会警告。中间发生了什么?

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

4 个回复

倒序浏览
如果有高手请说的详细一点多谢了
回复 使用道具 举报
补充一下,如果在分类的声明文件中,声明这个同名方法,和不声明直接在分类实现文件中实现,有什么区别?
回复 使用道具 举报
Lxy 中级黑马 2014-10-23 17:33:57
板凳
有警告!是编译器不提倡分类中覆盖原始类方法!
如果重复声明,没有问题,就像C语言中多次加载头文件一样,没有问题!
回复 使用道具 举报 1 0
2楼说的挺正确的  调用方法时 优先调用分类中的方法,如果在分类中重写了 原始类中的方法 就不会在调用原始类中的方法了,因此 编译器不建议你这么用  
我就知道那么多啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马