目标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?
-
什么用例来定义一个新的根类?