黑马程序员技术交流社区
标题: self 与 super方法的对比 [打印本页]
作者: machao610 时间: 2014-5-31 22:18
标题: self 与 super方法的对比
self 与 super方法的对比
self
1.概念:指向了当前对象(方法调用着) 谁调用指向谁
2.可以用“self—>成员变量名”访问当前对象内部的成员变量
3.[self 方法名]可以调用其他对象方法/类方法
super
1.直接调用父类中的某个方法
2.super处在对象方法中,就调用父类的对象方法, super处在类方法中就调用父类的类方法
3.使用场景:子类重写父类方法时想保留父类的一些行为方法
#import <Foundation/Foundation.h>
@interface Zoombie : NSObject
- (void)walk;
@end
@implementation Zoombie
- (void)walk
{
NSLog(@"往前挪一步");
}
@end
@interface JumpZoombie : NSObject
- (void)walk;
@end
@implementation JumpZoombie
- (void)walk
{
NSLog(@"先跳两步");
//[self walk]; 这里用[self walk]时 self是调用JumpZoobie的walk方法会在当前方法中找 walk方法 此时就成了死循环所以应该用super方法
[super walk]; //此时super会调用父类的walk方法当前方法是对象方法所以super就调用父类的对象方法
// NSLog(@"往前挪一步");
}
@end
int main()
{
JumpZoombie *jz = [JumpZoombie new]
[JumpZoombie walk]
return 0;
}
作者: wanzhu159 时间: 2014-6-1 09:52
赞一个!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |