美文网首页
class/superclass/super/self的区别

class/superclass/super/self的区别

作者: 墨狂之逸才 | 来源:发表于2016-08-06 14:14 被阅读35次
Person继承自NSObject
#import <Foundation/Foundation.h>

@interface Person : NSObject

- (void)test;

@end
#import "Person.h"

@implementation Person

- (void)test {
    //self:获取方法的调用者
    //superclass:获取方法调用者父类类名
    //super:编译修饰符,不是指针,指向父类的一个标志,本质还是拿到当前对象去调用父类方法,注意:super并不是拿到父类对象去调用父类方法。
    NSLog(@"%@,%@,%@",[self class],[self superclass],[super class]);
    //打印结果: SonPerson,Person,SonPerson
}

@end
SonPerson类,继承自Person
#import "Person.h"

@interface SonPerson : Person

@end
#import "SonPerson.h"

@implementation SonPerson

- (void)test {
    
//    NSLog(@"%@,%@,%@",[self class],[self superclass],[super class]);
    //打印结果: SonPerson,Person,SonPerson
    
    [super test];
}

@end
方法的调用
#import "SonPerson.h"
 SonPerson *son = [[SonPerson alloc] init];
 [son test];

相关文章

网友评论

      本文标题:class/superclass/super/self的区别

      本文链接:https://www.haomeiwen.com/subject/ryuksttx.html