用Java中的接口隐藏api

csc*_*aba 2 java api interface

有人可以解释一下"用Java接口隐藏api"是什么意思吗?如何通过接口使用API​​函数?我需要一个小的工作示例来了解接口如何隐藏api非公共部分,以及如何在同一时间使用api puplic部分.

提前致谢.

感谢快速回复,让我有时间思考答案.
最后但不要感谢你的时间和努力!

II.我的第二个问题是:在下面这个案例的背景下会发生什么?

IBinaryOperation op = BinaryOperationProvider.getOperation("multiply");

or 

List<String> myList = new LinkedList<String>();
Run Code Online (Sandbox Code Playgroud)

对我来说不清楚,因为接口包含方法的声明,这就是为什么我不理解上面的行中可能发生的事情.使用的接口和对象的空方法之间是否存在任何含义?抱歉我的英语不好.

Chr*_*isJ 6

例如,您可以声明并创建字符串列表,如下所示:

List<String> myList = new LinkedList<String>();
Run Code Online (Sandbox Code Playgroud)

列表是类型myList.这是一个界面.这意味着所有后续的方法调用myList都将通过接口完成:您只能调用List接口中声明的方法.

但是,对象的具体类是LinkedList,它包含更多方法,其中一些方法反映了链表的结构(例如addFirstaddLast).但是由于您声明变量的方式,这些方法是隐藏的.您选择通过给定(限制性)接口访问该对象.

它似乎有限制性,但它也意味着您可以随时更改代码,并将具体类替换为LinkedList实现该List接口的任何其他类,例如ArrayList.