我从未使用过 Objective C,但有相当多的 C++ 经验。
Objective C 中的父类(super class)和协议(protocol)之间到底有什么区别?我读到协议(protocol)本质上是一个纯虚拟类,但真的是这样吗?协议(protocol)只是一种特定类型的父类(super class)吗?
最佳答案
协议(protocol)是类要遵守的契约。当一个类符合协议(protocol)时,它告诉编译器它将实现协议(protocol)中声明的所有方法和所有属性。
在 Objective-C 中,该类还需要一个父类(super class)。在很多情况下,这是NSObject
。父类(super class)已经实现了很多方法(例如 isEqual:
)。协议(protocol)从不实现任何方法或定义任何属性。
关于swift - Swift 中的父类(super class)与协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024186/