【问题标题】:What does static in front of nested interface mean? [duplicate]嵌套接口前面的static是什么意思? [复制]
【发布时间】:2019-05-14 15:31:30
【问题描述】:

我认为这是一个很容易用谷歌搜索的问题,但我什么也没找到。在以下代码中:

public class ParentClass {
    public static interface InterfaceStatic {

    }
    public interface InterfaceNotStatic
    {

    }
}

您能描述一下InterfaceNotStaticInterfaceStatic 之间的区别吗?我知道嵌套类的相同语法意味着什么,但由于接口没有任何价值,所以static 的用途让我无法理解。

【问题讨论】:

标签: java interface


【解决方案1】:

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

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

(引用JLS 8.5.1. Static Member Type Declarations

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 1970-01-01
      • 2017-02-27
      • 2016-05-12
      • 2019-11-23
      • 2018-10-29
      • 1970-01-01
      • 2015-05-23
      相关资源
      最近更新 更多