我了解默认情况下这些字段为public static final
,我的问题是为什么要使用public
?
我认为我的问题来自于为什么接口具有字段。奇怪的是,我从该站点上的其他答案中读取并接受了它们是static final
,但为什么public
却使我感到困惑。
答案 0 :(得分:1)
接口应由其他类实现,而不是封装任何数据。这就是为什么所有字段都公开的原因。
答案 1 :(得分:1)
规格的相关位: https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.3
接口主体中的每个字段声明都是隐式的 公共的,静态的和最终的。可以重复指定任何 或这些字段的所有这些修饰符。
仅允许您重复声明要公开,尝试更改它会导致编译时错误。
私有将几乎毫无意义(实现类将无法看到该字段)。 如果您什么也没说,那么您就会公开,而不是通常的“软件包”可见性。 并且阻止您指定受保护。不知道是否有一个有效的用例。