iOS程序员iOS细节知识收录

iOS 关键字 self 和 super

2018-10-08  本文已影响74人  ChinaChong

先来看一个经典面试题:

以下代码输出什么?

// Son.h
#import "Father.h"

@interface Son : Father

@end

// Son.m
#import "Son.h"

@implementation Son

- (instancetype)init
{
    self = [super init];
    if (self) {
        NSLog(@"%@",[self class]);
        
        NSLog(@"%@",[super class]);
    }
    return self;
}

@end

答案是两个NSLog输出完全一样,都是 Son。这道面试题就是考察selfsuper的区别与联系。第一个NSLog输出Son肯定是不用说的。第二个输出中,[super class]输出Son就要说说selfsuper到底有什么小暧昧😏

self

super

由此可知,虽然调用的是[super class],但是调用方法和接受消息的对象还是self。然后来到父类Fatherclass方法中,输出self对应的类Son
上一篇 下一篇

猜你喜欢

热点阅读