据我了解它们是契约(Contract)的接口(interface),我将其解释为契约(Contract)词,即必须具有接口(interface)中指定的内容(例如打开、关闭、读取、写入接口(interface)处理文件)。
但是我很难理解的是为什么你需要一个接口(interface)来告诉你这个类必须能够做什么,你不知道你已经在接口(interface)规范中写了它吗?
我可以看到接口(interface)的唯一原因是在大型项目中,您希望能够在不真正知道如何构建的情况下使用类。通过查看界面需要什么,您可以知道如何使用它。
这让我想知道为什么我应该在我将是唯一一个工作的项目中使用(或者如果我应该)接口(interface)。我很确定它还有更多我没有看到的用途。
我的大部分假设和解释来自 this question和 this vbforums post
最佳答案
你说得对,接口(interface)指定了契约(Contract),但实现可能有很大不同。
简单示例:Java 中的列表。列表是一个接口(interface)。两种常见的实现是 ArrayList 和 LinkedList。每个人的行为不同,但遵守相同的契约(Contract)。我的意思是 ArrayList 具有 O(1) (常量)访问权限,而 LinkedList 具有 O(n) 访问权限。
如果你还不明白 O(1) 和 O(n) 是什么意思,我建议你看看 Plain english explanation of Big O .
您甚至在自己的代码(即不是或不会成为公共(public) API 的代码)上执行此操作的原因是:
关于oop - 接口(interface)的功能主要是为了使用函数而不知道类是如何构建的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052004/