isa和SuperClass

135 阅读1分钟

开局一张图

走位 走位 刚开始看这图时,我也是懵的,其实也很好理解,这得分开看;

虚线 isa

实线superclass

isa的走位

实例对象(Instance of Subclass)isa 指向 类(class)

类对象(class)isa指向 元类(Meta class)

元类(Meta class)isa 指向 根元类(Root metal class)

元类(Root metal class)isa 指向它自己本身,形成闭环,这里的根元类就是NSObject

superclass(继承关系)走位

类(subClass) 继承自 父类(superClass)

父类(superClass) 继承自 根类(RootClass ),此时的 根类是指 NSObject

根类 继承自 nil,所以 根类即 NSObject可以理解为万物起源

子类的 元类(metal SubClass) 继承自 父类的 元类(metal SuperClass)

父类的 元类(metal SuperClass ) 继承自 根元类(Root metal Class)

根元类(Root metal Class) 继承于 根类(Root class ),此时的 根类是指 NSObject

【注意】 实例对象之间 没有 继承关系,类之间有继承关系