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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题一:
oc中,子类是否可以重写父类的类方法?
问题二:
父类中有同名的test类方法和对象方法,在子类中调用[self test]的时候,调用的是父类的对象方法还是类方法?
还是说,在子类的对象方法中调用的,就调用父类的对象方法,在类方法中调用的就调用父类的类方法?

感觉这个问题应该也有人有疑问,希望大家一起讨论一下.

还没来得及做实验~

4 个回复

正序浏览
wupeng756 发表于 2015-4-5 18:33
问题一:子类对象方法可以和父类同名,但是在调用的时候,优先在当前类中找那个方法,如果是子类调用,而且 ...

非常感谢~~~!!!
回复 使用道具 举报
老师讲的很清楚了 这块比较复杂 我可能描述的不清楚 你看看视频就知道啦~~
回复 使用道具 举报
问题一:子类对象方法可以和父类同名,但是在调用的时候,优先在当前类中找那个方法,如果是子类调用,而且子类已经有了就不会再去调用父类的方法了。如果子类没有才会回到父类去中找 如果父类还没有 继续往上找 找父类的父类
问题二:self代表的时当前类 所以在子类中 [self test] 如果是写在+方法中就是调用类方法test  如果是写在-方法中就是调用对象方法 self关键看时谁调用 因为+方法是类调用的 所以在+方法里面的self就代表类 调用的也是那个类的类方法
如果是-对象方法 同理
如果要调用父类的方法 请用[super 方法名]

点评

非常感谢~~!!  发表于 2015-4-5 19:16
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马