Objective-c中的协议和接口有什么区别?

时间:2010-05-12 11:14:16

标签: ios objective-c

我对协议和接口之间的区别感到困惑?他们似乎都在做同样的事情?

它是否像C#中的抽象一样,你需要实现它?

5 个答案:

答案 0 :(得分:10)

Objective-C中的协议与java中的接口相同,如果这就是你的意思

答案 1 :(得分:10)

在Objective C中,接口等同于C ++类声明。协议等同于Java接口。

编辑:在Objective C中,类定义分为两个组件,分别称为接口和实现,它允许您缩小头文件。这与C ++类似。 Java没有等价物,因为您在类定义中实现了类函数。在这方面,C#与Java类似。

答案 2 :(得分:4)

Objective-C:protocol

Java:interface

否则,没有区别。

答案 3 :(得分:1)

In Java - you implement an Interface
In Swift/Objective C - you conform to a Protocol

"Program to an Interface, not an Implementation"
- Design Patterns 1995

答案 4 :(得分:0)

协议是一组可由任何类实现的相关属性和方法。它们比普通的类接口更灵活,因为它们允许您在完全不相关的类中重用单个API声明。 这使得可以在现有类层次结构之上表示水平关系。

类接口声明与该类关联的方法和属性。

相比之下,协议用于声明独立于任何特定类的方法和属性。

相关问题