为什么界面看起来与类完全相同,只是函数声明。界面的主要好处是什么?除了共享界面的多个类,但仍然感觉像是什么?每个类都有它自己的实现,因此为什么要使用接口?
答案 0 :(得分:1)
使用接口意味着接口的调用者不依赖于特定的实现。
例如,如果您正在使用C#并且需要一系列数据,那么您希望在IEnumerable<T>
方面看到这一点。您不关心实现是什么 - 并且需要一个特定的实现将限制您的代码的使用方式。
另一个例子是Stream
- 这是一个抽象类而不是接口,但基本原理是相同的。您可以将任何类型的流解析为XmlDocument
(以选择任意使用流)。无论是FileStream
,NetworkStream
,MemoryStream
还是其他任何内容都无关紧要,只要它支持所需的操作。
答案 1 :(得分:1)
它允许两个完全不相关的类实现相同的接口,因此可以以相同的方式使用。 (就像在具有完全不同实现的两个列表上调用ISortable.Sort一样。 这就像多重继承,只有更好。 :)
接口也用于在进程之间共享对象(Google for COM或Automation)。
答案 2 :(得分:1)
答案 3 :(得分:0)
在静态类型的面向对象语言中,接口使得可以使用仅共享接口的类以多态方式使用。
答案 4 :(得分:0)
当您需要在不同子系统之间进行交互时通常使用的接口。它还具有松散耦合和隐藏实际实现对象的优点。
答案 5 :(得分:0)
在使用界面进行设计时,可以强调预期的行为,而不会因任何实现无效的细节而造成污染。
接口表示合同,允许应用程序的其余部分通过此接口使用任何对象,该对象遵守此合同。
简而言之:
答案 6 :(得分:0)