黑马程序员技术交流社区

标题: 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