什么是界面感?

时间:2010-03-11 09:25:31

标签: java interface

我仍然不熟悉Java中的接口。我知道该接口告诉哪些方法应该有实现该接口的类。但是有什么意义呢?为什么要使用它?是不是更容易创建实现接口而不是接口实例的类的实例?或者重要的是我错过了什么?

4 个答案:

答案 0 :(得分:2)

尝试阅读“编程到界面”和“控制反转”。

答案 1 :(得分:1)

Java不支持多重继承,但它允许单个类实现多个接口。

这使得可以根据类应该满足的预期“契约”来定义功能,即“它必须是可枚举的,它必须是可序列化的,等等”,而不是“它必须是这种特定类型” ”

答案 2 :(得分:1)

许多人使用接口来定义抽象类 - 类的所有成员,没有显式实现。坦率地说,我没有看到很多价值。

我更喜欢使用接口来做两件事之一:

  1. 显示班级的正交能力
  2. 声明类有
  3. 的要求

    第二个是,我认为,更有趣,可能值得更多解释。您可能会编写一个需要加载或保存某些数据的类。您可以声明一个具有您希望能够调用的方法的接口,而不是直接与您将使用的任何数据存储进行对话。

    然后,实现一个具有这些方法的类(实现该接口),并将其传递给想要它的类。

    这为您提供了良好的抽象和责任分离。

答案 3 :(得分:1)

接口本质上是一个契约,保证给定的类具有列出的方法集。

这允许您只是说您有一个恰好需要“列出” - 契约的对象,因此您知道您有例如一个“size()”和一个“add(...)”方法,然后你可以调用它。

这可能会让您在简单的界面背后隐藏大量的复杂性。想想JDBC Connections ......