为了账号安全,请及时绑定邮箱和手机立即绑定

为什么界面变量默认为静态和最终?

为什么界面变量默认为静态和最终?

偶然的你 2019-07-23 18:00:42
为什么界面变量默认为静态和最终?为什么Java中默认接口变量是静态的和最终的?
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

来自Philip Shaw的Java界面设计常见问题解答:

接口变量是静态的,因为Java接口本身无法实例化; 必须在没有实例的静态上下文中分配变量的值。最终修饰符确保分配给接口变量的值是一个真正的常量,不能由程序代码重新赋值。

资源


查看完整回答
反对 回复 2019-07-23
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

由于接口没有直接对象,访问它们的唯一方法是使用类/接口,因此如果接口变量存在,它应该是静态的,否则它根本不可访问外部世界。既然它是静态的,它只能保存一个值,任何实现它的类都可以改变它,因此它会变得一团糟。

因此,如果有一个接口变量,它将是隐式静态的,最终的,显然是公共的!


查看完整回答
反对 回复 2019-07-23
?
jeck猫

TA贡献1909条经验 获得超7个赞

public:用于跨所有类的可访问性,就像界面中存在的方法一样

static:由于接口不能有对象,interfaceName.variableName可用于引用它或直接引用实现它的类中的variableName。

final:使它们成为常数。如果2个类实现相同的接口并且您同时给它们两个更改值的权限,则var的当前值将发生冲突,这就是为什么只允许一次初始化。

所有这些修饰符都是隐含的接口,你真的不需要指定它们中的任何一个。


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 397 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信