Simple JavaJava中的内部接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Simple JavaJava中的内部接口相关的知识,希望对你有一定的参考价值。

什么是内部接口

内部接口也称为嵌套接口,即在一个接口内部定义另一个接口。举个例子,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/

 

以上是关于Simple JavaJava中的内部接口的主要内容,如果未能解决你的问题,请参考以下文章

Simple JavaJava是如何处理别名(aliasing)的

Simple JavaJava可变参数举例

javajava 中的语法糖 一些常见的代码 内部很简单

Simple JavaJava中怎样创建线程安全的方法

Simple JavaJava中静态类型检查是如何进行的

Simple JavaJava字符串中常见的10个问题