我知道Java接口变量默认是public static和final。
通过看到discussion
,我明白了为什么它们是静态的和最终的但我没有理由为什么接口变量默认是公开的。
如果有人知道为什么接口变量总是公开的原因,为什么我们不能在接口中有受保护或默认的变量,请解释一下。
请不要让我谷歌搜索它,因为我一直在谷歌上搜索超过两个小时,并且没有任何网站明确解释为什么变量是默认公开的。
我也看到了下面的blog,但没有关于我的查询的明确信息。
答案 0 :(得分:3)
接口是“行为蓝图”。与班级不同,他们不应该(也不要)拥有州。
由于实例变量表示对象的状态,因此接口不具有实例变量(即私有或公共变量)。 由于私有静态变量表示类的状态,因此它们也没有私有静态变量。
答案 1 :(得分:0)
接口具有使用类需要与外部通信的功能。通过它你可以有几个不同的类,它们都具有相同的调用类函数。
现在,如果你在界面中创建一个变量,如果变量不公开,它会带来什么?接口是为了概括与其他类的通信,如果变量或函数不是公共的,则不能从其他类中使用它。 我跳这会帮助你。
答案 2 :(得分:-1)
设计为对象之间通信方式的接口。这就是为什么所有方法都必须公开的原因。它只是一种设计选择。
编辑:正如@jwenting所建议的那样,最好是说这是核心架构选择,而不是设计选择。