为什么界面具有字段并且它们是公共的?

时间:2019-04-26 15:19:18

标签: java

我了解默认情况下这些字段为public static final,我的问题是为什么要使用public

我认为我的问题来自于为什么接口具有字段。奇怪的是,我从该站点上的其他答案中读取并接受了它们是static final,但为什么public却使我感到困惑。

2 个答案:

答案 0 :(得分:1)

接口应由其他类实现,而不是封装任何数据。这就是为什么所有字段都公开的原因。

答案 1 :(得分:1)

规格的相关位: https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.3

  

接口主体中的每个字段声明都是隐式的   公共的,静态的和最终的。可以重复指定任何   或这些字段的所有这些修饰符。

仅允许您重复声明要公开,尝试更改它会导致编译时错误。

私有将几乎毫无意义(实现类将无法看到该字段)。 如果您什么也没说,那么您就会公开,而不是通常的“软件包”可见性。 并且阻止您指定受保护。不知道是否有一个有效的用例。