黑马程序员技术交流社区
标题:
OC中,类方法重写和self调用的问题
[打印本页]
作者:
w82826330
时间:
2015-4-5 18:13
标题:
OC中,类方法重写和self调用的问题
问题一:
oc中,子类是否可以重写父类的类方法?
问题二:
父类中有同名的test类方法和对象方法,在子类中调用[self test]的时候,调用的是父类的对象方法还是类方法?
还是说,在子类的对象方法中调用的,就调用父类的对象方法,在类方法中调用的就调用父类的类方法?
感觉这个问题应该也有人有疑问,希望大家一起讨论一下.
还没来得及做实验~
作者:
wupeng756
时间:
2015-4-5 18:33
问题一:子类对象方法可以和父类同名,但是在调用的时候,优先在当前类中找那个方法,如果是子类调用,而且子类已经有了就不会再去调用父类的方法了。如果子类没有才会回到父类去中找 如果父类还没有 继续往上找 找父类的父类
问题二:self代表的时当前类 所以在子类中 [self test] 如果是写在+方法中就是调用类方法test 如果是写在-方法中就是调用对象方法 self关键看时谁调用 因为+方法是类调用的 所以在+方法里面的self就代表类 调用的也是那个类的类方法
如果是-对象方法 同理
如果要调用父类的方法 请用[super 方法名]
作者:
wupeng756
时间:
2015-4-5 18:34
老师讲的很清楚了 这块比较复杂 我可能描述的不清楚 你看看视频就知道啦~~
作者:
w82826330
时间:
2015-4-5 19:15
wupeng756 发表于 2015-4-5 18:33
问题一:子类对象方法可以和父类同名,但是在调用的时候,优先在当前类中找那个方法,如果是子类调用,而且 ...
非常感谢~~~!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2