Runtime笔记(五)—— super的本质

本文深入探讨Objective-C中`super`的本质,通过分析中间代码和Runtime API,揭示`super`如何影响消息传递流程。文章通过一个面试题为例,解释`super`消息接受者并非父类,而是子类实例,且会从父类开始查找并调用方法,从而影响最终的打印结果。
摘要由CSDN通过智能技术生成

Runtime系列文章

Runtime笔记(一)—— isa的深入体会(苹果对isa的优化)
Runtime笔记(二)—— Class结构的深入分析
Runtime笔记(三)—— OC Class的方法缓存cache_t
Runtime笔记(四)—— 刨根问底消息机制
Runtime笔记(五)—— super的本质
[Runtime笔记(六)—— Runtime的应用…待续]-()
[Runtime笔记(七)—— Runtime的API…待续]-()
Runtime笔记(八)—— 记一道变态的runtime面试题

从面试题出发

请看如下代码

****************************CLPerson.h
@interface CLPerson : NSObject

@end

****************************CLStudent.h
@interface CLStudent : CLPerson

@end

****************************CLStudent.m
@implementation CLStudent
- (instancetype)init
{
   
    self = [super init];
    if (self) {
   
        NSLog(@"[self class] = %@",[self class]);
        NSLog(@"[self superclass] = %@",[self superclass]);
        NSLog(@"[super class] = %@",[super class]);
        NSLog(@"[super superclass] = %@",[super superclass]);
    }
    return self;
}
@end

****************************main.m
int main(int argc, char * argv[]) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值