接口中的变量

2022-09-03 17:14:32

为什么接口中使用的变量是公共静态 FINAL?为什么特别“静态”?


答案 1

无论如何,接口中声明的字段只能是常量,那么为什么它取决于您使用哪个实例来访问它呢?

无论如何,现在将字段放在界面中通常是糟糕的风格。该接口旨在反映实现它的类的功能 - 这与常量的概念完全正交。使用接口只是为了声明一堆常量,这当然是一个令人讨厌的想法。我偶尔会发现让接口类型公开常量很有用,这些常量是简单的实现 - 例如,过滤接口可能具有“ALLOW_ALL”和“ALLOW_NONE”字段。

我想你可以想象一个场景,实现一个接口实际上确实向你的类添加了一个实例字段 - 但这会破坏封装,不仅因为它是隐式的公共的,而且还通过指定实现的一部分而不是API。


答案 2

因为您无法实例化接口。此外,不能有任何方法体使用非静态非最终变量。


推荐