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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima2xy 中级黑马   /  2015-3-4 11:53  /  1449 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我只知道super是用来调用父类方法的,self表示当前调用者。

4 个回复

正序浏览

本帖最后由 Micro 于 2015-2-6 22:21 编辑

self指向当前对象 ,在静态方法中,代表着当前类。在动态方法中,代表着调用该方法的当前对象。
super指当前对象的父类

******子类继承了父类。
但是没有实现 方法 method11
调用 [self method11]
和    [super method11]
有什么区别。
     当然有区别。
     当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这个方法。
     如果子类覆盖了父类的方法A,那你还想调用父类的方法A,只能用super,不能用self
回复 使用道具 举报

互相帮助,共同进步!
回复 使用道具 举报
悟饭 发表于 2015-3-4 13:17
C语言中的self和super关键字类似于Java中的this和super,super都是用来调用父类方法,self或this代表当前对 ...

谢谢解答!!!
回复 使用道具 举报
C语言中的self和super关键字类似于Java中的this和super,super都是用来调用父类方法,self或this代表当前对象,调用当前对象的方法或属性,但有一点不同的是,self在当前对象中没有找到要调用的方法时,会再向父类中去找,如果找到就会调用父类的方法。

评分

参与人数 1黑马币 +20 收起 理由
扬帆远航 + 20

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马