官方Java教程中的这一行是不准确的吗?

时间:2013-01-30 19:54:21

标签: java interface

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

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

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


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

4 个答案:

答案 0 :(得分:4)

  

根据我的理解,界面只是一个承诺的合同   提供一些成员/方法

这非常接近协议的定义。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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