内部接口也称为嵌套接口,即在一个接口内部定义另一个接口。举个例子,Entry接口定义在Map接口里面,如下代码:
public interface Map { interface Entry{ int getKey(); } void clear(); }如下是一些强有力的理由:
一种对那些在同一个地方使用的接口进行逻辑上分组;封装思想的体现;嵌套接口可以增强代码的易读性和可维护性;在Java标准库中使用内部接口的一个例子是java.util.Map和Java.util.Map.Entry。这里java.util.Map同样被当成命名空间使用。Entry并不属于全局作用域范围.
为了弄清楚内部接口是如何工作的,我们可以拿它与内部类作比较。内部类可以被认为是一个外部类内部定义的一个常规方法。因为一个方法可以被声明为静态和非静态,类似的内部类也可以被声明为静态和非静态。静态类类似于静态方法,它只能访问外部类的静态成员属性。非静态方法可以访问外部类的所有成员属性。
因为接口是不能实例化的,内部接口只有当它是静态的才有意义。因此,默认情况下,内部接口是静态的,不能你是否手动加了static关键字。
Map.java
public interface Map { interface Entry{ int getKey(); } void clear(); }MapImpl.java
public class MapImpl implements Map { class ImplEntry implements Map.Entry{ public int getKey() { return 0; } } @Override public void clear() { //clear } }
译文链接:http://www.programcreek.com/2013/08/inner-interface-in-java/
@author 风一样的码农 @blog_url http://www.cnblogs.com/chenpi/ 分类: 英文翻译 标签: JAVA 好文要顶 关注我 收藏该文 风一样的码农 关注 - 7 粉丝 - 114 +加关注 0 0 « 上一篇: Java中怎样创建线程安全的方法 » 下一篇: 使用iText库创建PDF文件 posted @ 2016-05-22 23:47 风一样的码农 阅读( 1422) 评论( 1) 编辑 收藏 评论列表 #1楼 2016-08-20 23:23 dracularking 内部接口的设计真是恰到好处~