我从未使用过目标C,但对C ++有一定的经验。
目标C中超类和协议之间究竟有什么区别?我读到一个协议本质上是一个纯虚拟类,但是它呢?协议只是一种特定类型的超类吗?
答案 0 :(得分:2)
协议是一个类要遵守的契约。当一个类符合协议时,它告诉编译器它将实现协议中声明的所有方法和所有属性。
在Objective-C中,该类还需要一个超类。在很多情况下,这是NSObject
。超类实现了很多方法(比如isEqual:
)。协议从不实现任何方法或定义任何属性。
答案 1 :(得分:1)
协议告诉类必须实现哪些属性/操作。超类实现它们,您可以在顶部添加自己的东西。
答案 2 :(得分:0)
协议定义了一组类或结构必须实现的方法定义,非常类似于Java接口。
超类是给定类继承其方法定义的类,这些方法的实现以及实例和类属性。