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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风中一场梦 中级黑马   /  2015-3-1 20:50  /  1188 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

       在推荐主题上看到有人悬赏self 和super的区别,正巧小弟之前看一个视频看到了,满怀信心想赚黑马币,可惜早被人捷足先登一步。准备好的答案就在此发帖自怜吧。
       self 先从子类调用函数,再从父类找
       super  调用父类函数
比如 父类 f 定义了函数 play()  集成 f 的子类 a 也定义的函数 play()  
那么 在子类 a 使用 self 则调用 a的 play()函数 如 a 未定义 play 则调用 f 的 play()
    使用super 则调用 f 的 play()

8 个回复

倒序浏览
善意的提醒一下,请重新看一下 方法 和函数的区别。 self 和super都是调用方法的,不是函数
回复 使用道具 举报
楼上正解
回复 使用道具 举报
我去 方法和函数有区别吗? 据我所知 貌似就是叫法不同而已 有点区别可能是类的函数叫方法,楼主说的没问题
回复 使用道具 举报
15021367785 发表于 2015-3-2 01:24
善意的提醒一下,请重新看一下 方法 和函数的区别。 self 和super都是调用方法的,不是函数 ...

谢谢亲,:)
回复 使用道具 举报
15021367785 发表于 2015-3-2 01:24
善意的提醒一下,请重新看一下 方法 和函数的区别。 self 和super都是调用方法的,不是函数 ...

谢谢亲,学到了:)
回复 使用道具 举报
keeganlee 发表于 2015-3-2 08:12
我去 方法和函数有区别吗? 据我所知 貌似就是叫法不同而已 有点区别可能是类的函数叫方法,楼主说的没问题 ...

还是有区别的,方法是oc独有的。在@interface和@end之间声明,在@implementation和@end之间定义。分为类方法和对象方法。类方法只能由类来调用,对象方法只能由方法来调用。函数能写在文件中的任意位置(@interface和@end之间除外)。函数内部不能直接通过成员变量名访问某个对象的成员变量。可以说方法是专门为类和对象设计的特殊函数。大家一起努力,谢谢亲
回复 使用道具 举报
风中一场梦 发表于 2015-3-2 08:51
还是有区别的,方法是oc独有的。在@interface和@end之间声明,在@implementation和@end之间定义。分为类 ...

你说父类定义的函数,不定义在@interface和@implement中你定义在哪?
回复 使用道具 举报
keeganlee 发表于 2015-3-2 08:58
你说父类定义的函数,不定义在@interface和@implement中你定义在哪?

亲,请先去看视频。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马