为什么界面变量是公开的

时间:2015-10-06 07:52:02

标签: java interface

我知道Java接口变量默认是public static和final。

通过看到discussion

,我明白了为什么它们是静态的和最终的

但我没有理由为什么接口变量默认是公开的。

如果有人知道为什么接口变量总是公开的原因,为什么我们不能在接口中有受保护或默认的变量,请解释一下。

请不要让我谷歌搜索它,因为我一直在谷歌上搜索超过两个小时,并且没有任何网站明确解释为什么变量是默认公开的。

我也看到了下面的blog,但没有关于我的查询的明确信息。

3 个答案:

答案 0 :(得分:3)

接口是“行为蓝图”。与班级不同,他们不应该(也不要)拥有州。

由于实例变量表示对象的状态,因此接口不具有实例变量(即私有或公共变量)。 由于私有静态变量表示类的状态,因此它们也没有私有静态变量。

答案 1 :(得分:0)

接口具有使用类需要与外部通信的功能。通过它你可以有几个不同的类,它们都具有相同的调用类函数。

现在,如果你在界面中创建一个变量,如果变量不公开,它会带来什么?接口是为了概括与其他类的通信,如果变量或函数不是公共的,则不能从其他类中使用它。 我跳这会帮助你。

答案 2 :(得分:-1)

设计为对象之间通信方式的接口。这就是为什么所有方法都必须公开的原因。它只是一种设计选择。

编辑:正如@jwenting所建议的那样,最好是说这是核心架构选择,而不是设计选择。