Swift中的超类vs协议?

时间:2015-05-04 06:53:29

标签: swift oop

我从未使用过目标C,但对C ++有一定的经验。

目标C中超类和协议之间究竟有什么区别?我读到一个协议本质上是一个纯虚拟类,但是它呢?协议只是一种特定类型的超类吗?

3 个答案:

答案 0 :(得分:2)

协议是一个类要遵守的契约。当一个类符合协议时,它告诉编译器它将实现协议中声明的所有方法和所有属性。 在Objective-C中,该类还需要一个超类。在很多情况下,这是NSObject。超类实现了很多方法(比如isEqual:)。协议从不实现任何方法或定义任何属性。

答案 1 :(得分:1)

协议告诉类必须实现哪些属性/操作。超类实现它们,您可以在顶部添加自己的东西。

答案 2 :(得分:0)

协议定义了一组类或结构必须实现的方法定义,非常类似于Java接口。

超类是给定类继承其方法定义的类,这些方法的实现以及实例和类属性。