0

我在这里查看 Java 中“接口”的摘要:http: //docs.oracle.com/javase/tutorial/java/IandI/summary-interface.html

第一行声明,“接口定义了两个对象之间的通信协议。”

这真的准确吗?根据我的理解,接口只是承诺提供一组成员/方法的合同,可以由任意数量的客户端使用(只要它们根据访问修饰符具有适当的访问权限)。我是否遗漏了合同的“另一面”,它会在“两个对象之间”建立一个接口?


编辑:从答案/评论(以及投票结束!:-[ ),我想我已经弄清楚了。我想我只是迷上了“两个对象之间”并假设它意味着“只有两个对象之间”,这显然是一个错误的假设。谢谢!

4

4 回答 4

4

据我了解,接口只是承诺提供一组成员/方法的合同

这非常接近协议的定义。

于 2013-01-30T19:56:32.500 回答
2

我不会说它不准确。如果有的话,那只是过于简单化了。

没错,任何数量的客户端都可以使用实现接口的对象。就此而言,您可以说客户端不一定是对象(它可以是类中的静态方法,这意味着很难说客户端是对象)。但是定义通信协议的观点并没有错,即使需要考虑不同的范式。

于 2013-01-30T19:57:31.927 回答
1

每当您使用一个对象时,您总是从另一个对象中使用它。您不会同时从多个对象调用方法。

因此,如果 A 提供了一个接口,那么 B 和 C 也依赖它,但 A 仍然分别为 B 和 C 提供一个接口。

于 2013-01-30T19:57:43.347 回答
0

接口中定义的方法签名是强制的。一方面是接口的实现者,另一方面是调用实现者的客户端。

于 2013-01-30T19:58:22.457 回答