这篇文章介绍一下java中的内部接口
什么是java中的内部接口?
内部接口 就是接口的内部再定义一个接口,例如:
public interface Map {
interface Entry{
int getKey();
}
void clear();
}
为什么使用内部接口?
有如下几个原因:
- 实现只在一个地方使用的逻辑接口的方式.
- 增强封装.
- 增强代码的可读性与可维护性.
一个内部接口的例子是java标准库中的 java.util.Map 和 Java.util.Map.Entry. 这里的 java.util.Map同时作为一个namespace. Entry并不属于全局范围i,意味着很多的条目属于Entries 而不是Map的
内部接口怎样工作?
为了说明内部接口怎样工作,我们可以对比嵌套类. 嵌套类可以被视为在外类中声明的一种规则方法。因为一个方法可以声明为静态或非静态的,类似的,嵌套类可以是静态的和非静态的。静态类像静态方法,它只能通过对象访问外部类成员。非静态类可以访问外部类的任何成员。

因为接口不能被实例化,于是内部接口是静态的才有意义。因此,默认的接口是静态的,无论你是否手动添加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
}
}

Comments