我在这里看到Java中“接口”的摘要:http://docs.oracle.com/javase/tutorial/java/IandI/summary-interface.html
第一行说明,“接口定义了两个对象之间的通信协议。”
这真的很准确吗?根据我的理解,接口只是一个承诺提供一些成员/方法的合同,任何数量的客户端都可以使用它们(只要它们对访问修饰符有适当的访问权限)。我是否遗漏了合同的“另一面”,它会使界面“在两个对象之间”?
编辑:从答案/评论(和投票结束!: - [),我想我已经弄清楚了。我想我只是迷上“两个对象之间”并假设它意味着“只有两个对象之间”,这显然是一个错误的假设。谢谢!
答案 0 :(得分:4)
根据我的理解,界面只是一个承诺的合同 提供一些成员/方法
这非常接近协议的定义。
答案 1 :(得分:2)
我不会称之为不准确。如果有的话,那只是过于简单化了。
你是对的,任何数量的客户都可以使用实现接口的对象。就此而言,你可以说客户端不必是一个对象(它可能是一个类中的静态方法,这意味着很难说客户端是一个对象)。但是,关于定义通信协议的观点并没有错,即使需要通过不同的范例进行思考。
答案 2 :(得分:1)
每当你使用一个对象时,你总是从另一个对象使用它。您不能同时从多个对象调用方法。
因此,如果A提供接口,那么B也依赖它和C,但A仍然分别提供B和C的接口。
答案 3 :(得分:0)
接口中定义的方法签名是强制执行。你有一方面是接口的实现者,另一方面是调用实现者的客户端。