iOS学习心得之 -- 方法链的寻找模型

子类 Student 父类 SubClass
父类包含一个实例函数 subClassMethod

Student *stu = [[Student alloc] init];
[stu subClassMethod];

看似一个非常简单的问题,子类继承了父类,当然可以调用父类的方法了。
但是,到底是在类和类之间的关系,内存存储关系上,子类到底是如何找到父类的方法的?

iOS学习心得之 -- 方法链的寻找模型_第1张图片

关键是通过子类的实例对象的 _isa 指针,找到子类的类对象,然后在子类的类对象里通过 _isa 指针,找到父类类对象,从而找到从父类继承过来的方法。

ps : _isa 指针 全程是 is a
在面向对象里,子类在类型上 is a 父类。

你可能感兴趣的:(iOS学习心得之 -- 方法链的寻找模型)