Java嵌套接口

1 什么是Java嵌套接口

在另一个接口或类中声明的接口,称为嵌套接口。嵌套接口用于对相关接口进行分组,以便于维护。嵌套接口必须由外部接口或类引用。不能直接访问。

2 Java嵌套接口注意事项

  • 如果嵌套接口在接口中声明,则它必须是public修饰符,但如果在类中声明,则它可以具有任何访问修饰符。
  • 嵌套接口被隐式声明为static静态。

3 Java嵌套接口的语法

3.1 接口中声明嵌套接口

interface interface_name{  
  ...  
  interface nested_interface_name{  
  ...  
 }  
}  

3.2 类中声明嵌套接口

class class_name{  
   ...  
   interface nested_interface_name{  
   ...  
 }  
}   

4 接口中声明嵌套接口的例子

在此示例中,我们将学习如何声明嵌套接口以及如何访问它。

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * 接口中声明嵌套接口的例子
 */
interface Showable{
    void show();
    interface Message{
        void msg();
    }
}
class Demo implements Showable.Message{
    public void msg(){
        System.out.println("你好,嵌套接口");
    }

    public static void main(String args[]){
        Showable.Message message=new Demo();//向上转换
        message.msg();
    }
}

输出结果为:

你好,嵌套接口

上面的示例中,我们只能通过外部接口Showable来访问Message接口,因为它不能直接访问。在集合框架中,Sun公司提供了一个嵌套接口Entry。Entry是Map的子接口,我们可以通过Map.Entry访问。

5 类中声明嵌套接口的例子

让我们看看如何在类内部定义接口以及如何访问它。

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * 类中声明嵌套接口的例子
 */
class A{
    interface Message{
        void msg();
    }
}

class Demo implements A.Message{
    public void msg(){
        System.out.println("你好,嵌套接口");
    }

    public static void main(String args[]){
        A.Message message=new Demo();//向上转换
        message.msg();
    }
}

输出结果为:

你好,嵌套接口

6 Java嵌套接口的工作原理

反编译后的嵌套接口的源码:

public static interface Showable$Message  
{  
  public abstract void msg();  
}  

 

推荐好课