我对协议和接口之间的区别感到困惑?他们似乎都在做同样的事情?
它是否像C#中的抽象一样,你需要实现它?
答案 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声明。 这使得可以在现有类层次结构之上表示水平关系。
类接口声明与该类关联的方法和属性。
相比之下,协议用于声明独立于任何特定类的方法和属性。