嵌套接口前面的static是什么意思?

时间:2018-12-13 12:04:24

标签: java interface

我认为这是一个易于搜索的问题,但我什么也没发现。在以下代码中:

public class ParentClass {
    public static interface InterfaceStatic {

    }
    public interface InterfaceNotStatic
    {

    }
}

您能描述InterfaceNotStaticInterfaceStatic之间的区别吗?我知道相同的语法对于嵌套类意味着什么,但是由于接口不包含任何值,因此static的目的使我难以理解。

2 个答案:

答案 0 :(得分:0)

两个声明都相同。 static修饰符在这种情况下是多余的。

  

成员接口是隐式静态的(第9.1.1节)。允许成员接口的声明多余地指定static修饰符。

(引号为JLS 8.5.1. Static Member Type Declarations

答案 1 :(得分:0)

静态内部接口和内部接口相同,所有访问规则与内部静态类相同。因此,仅当您有权访问其父类/接口时,才能访问内部接口。在下面的情况下,您将只能从接口A的包访问接口B,因为接口A具有默认的访问修饰符。顺便说一句:接口B可以是静态的,也可以不是静态的。