目标c类的默认基类

这个问题的答案可能是显而易见的,但我需要确定的是:

当类定义中没有明确定义基类时,是否所有客观的c类都共享一个通用的默认基类?

不,如果您没有在类定义中明确定义一个超类,那么您正在创build一个根类 。

来自cocoa核心能力 :

一个根类不inheritance其他类,并定义一个接口和行为对它下面的层次结构中的所有对象是通用的。 该层次结构中的所有对象都最终从根类inheritance。 根类有时被称为基类。

所有Objective-C类的根类是NSObject ,它是Foundation框架的一部分。 Cocoa或Cocoa Touch应用程序中的所有对象最终都从NSObjectinheritance。 这个类是其他类与Objective-C运行时交互的主要接入点。 它还声明基本的对象接口并实现基本的对象行为,包括自省,内存pipe理和方法调用。 Cocoa和Cocoa Touch对象从根类派生出大部分对象的能力。

在这里输入图像说明

Foundation框架定义了另一个根类NSProxy ,但是这个类在Cocoa应用程序中很less使用,从来没有在Cocoa Touch应用程序中使用过。

也可以看看:

  • 为什么子类NSObject?

  • 什么用例来定义一个新的根类?