-
斯蒂芬大帝
来自Philip Shaw的Java界面设计常见问题解答:接口变量是静态的,因为Java接口本身无法实例化; 必须在没有实例的静态上下文中分配变量的值。最终修饰符确保分配给接口变量的值是一个真正的常量,不能由程序代码重新赋值。资源
-
一只甜甜圈
由于接口没有直接对象,访问它们的唯一方法是使用类/接口,因此如果接口变量存在,它应该是静态的,否则它根本不可访问外部世界。既然它是静态的,它只能保存一个值,任何实现它的类都可以改变它,因此它会变得一团糟。因此,如果有一个接口变量,它将是隐式静态的,最终的,显然是公共的!
-
jeck猫
public:用于跨所有类的可访问性,就像界面中存在的方法一样static:由于接口不能有对象,interfaceName.variableName可用于引用它或直接引用实现它的类中的variableName。final:使它们成为常数。如果2个类实现相同的接口并且您同时给它们两个更改值的权限,则var的当前值将发生冲突,这就是为什么只允许一次初始化。所有这些修饰符都是隐含的接口,你真的不需要指定它们中的任何一个。