为什么我们要实现接口?

Tar*_*rik 13 c# interface

我们为什么要实现,例如ICloneable或IDisposable.我不是在问ICloneable或IDisposable是做什么的,但我想知道实现这些接口的理由是什么,而不仅仅是编写一个处理或克隆对象的方法?

pho*_*bus 20

使用接口可以保持这些功能的使用一致.这样,当另一个类想要/需要使用您的类时,它可以作为可克隆的一次性对象对其进行操作,而不必担心您的特定实现细节.

  • 我有时会想同样的事情,但我不太确定,因为会有别的东西,但我对自己的想法是对的:)非常感谢你. (2认同)

pgb*_*pgb 10

通过实现一个众所周知的接口,您可以拥有多态性,这使您能够编写可以作用于实现给定接口的类的任何实例的通用代码.

您可以查看有关多态性维基百科文章以获取更多信息.


ito*_*son 5

因为您可能希望相同的代码对不同类的实例进行操作.例如,表单清理例程想要遍历所有组件并处理它们.为了实现这一点,它需要通过类型引用组件:公共基类或接口.单继承意味着公共基类并不总是可行的(假设我的表单同时具有FileStream和Button - 它们可以具有哪些公共基类,清理例程将通过它来访问它们?); 因此接口.