我知道它们强制你实现方法等,但我无法理解的是你为什么要使用它们。任何人都可以给我一个很好的例子或解释为什么我想实现这个。
最佳答案
一个具体示例:接口(interface)是指定其他人的代码必须满足的契约的好方法。
如果我正在编写代码库,我可能会编写对具有特定行为集的对象有效的代码。最好的解决方案是在接口(interface)中指定这些行为(没有实现,只是描述),然后在我的库代码中使用对实现该接口(interface)的对象的引用。
然后任何随机的人都可以来创建一个实现该接口(interface)的类,实例化该类的一个对象并将其传递给我的库代码并期望它能够工作。 注意:当然可以严格实现一个接口(interface)而忽略接口(interface)的意图,因此仅仅实现一个接口(interface)并不能保证一切都能正常工作。笨蛋总能找到办法! :-)
另一个具体示例:两个团队致力于必须合作的不同组件。如果两个团队在第一天就坐下来就一组接口(interface)达成一致,那么他们就可以分道扬镳,围绕这些接口(interface)实现他们的组件。 A 团队可以构建测试工具来模拟 B 团队的组件进行测试,反之亦然。并行开发,错误更少。
关键点是接口(interface)提供了一个抽象层,以便您可以编写不了解不必要细节的代码。
大多数教科书中使用的典型示例是排序例程。只要您有办法比较任意两个对象,您就可以对任何类别的对象进行排序。因此,您可以通过实现 IComparable 接口(interface)来使任何类可排序,这会强制您实现用于比较两个实例的方法。所有排序例程都是为了处理对 IComparable 对象的引用而编写的,因此一旦实现了 IComparable,您就可以在类的对象集合上使用任何这些排序例程。
关于oop - 我为什么要使用接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240152/