黑马程序员技术交流社区

标题: super的疑问 [打印本页]

作者: yaozeyang_2014    时间: 2014-3-21 17:14
标题: super的疑问
本帖最后由 yaozeyang_2014 于 2014-3-24 14:08 编辑

如果有3个类A,B,C,B继承了A,而C继承了B,看代码吧,为了方便,省略格式,关键字也省了
  1. A : NSObject
  2. {
  3. - (void)test{}
  4. }
  5. B : A
  6. {
  7. - (void)test{}
  8. }
  9. C : B
  10. {
  11. - (void)test
  12. {
  13.        [super test];
  14. }
  15. }
  16. void main()
  17. {
  18.        C* p = [C new]
  19.        [p test];
  20. }
复制代码



这个super是指向哪个父类的呢?是最原始的还是就近原则
作者: 牧之    时间: 2014-3-21 17:29
使用 super 时,从父类的方法列表中开始找。然后调用父类的这个方法(从super出现的在的方法所在的类的父类开始查找。)
作者: Ranger    时间: 2014-3-21 18:03
super指向C的父类 也就是B




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