2013-07-11 55 views

回答

53

在Interface中聲明的變量隱含地爲public static final。這是JLS 9.3說:

在接口的身體的每個字段聲明隱含公共,靜態和最終。允許冗餘地爲這些字段指定任何或所有這些修飾符。

通讀JLS以瞭解爲什麼這樣做。

看這個SO answer

接口變量是靜態的,因爲Java接口不能在自己的權利被實例化;變量的值必須在沒有實例存在的靜態上下文中分配。最終修飾符確保賦給接口變量的值是一個真正的常量,不能被程序代碼重新賦值。

+0

感謝您指出JLS! +1 – gavenkoa

2

接口variables隱含staticfinal因爲Java接口不能對自己被實例化。

接口所​​使用的接口關鍵字聲明,並且可僅包含方法簽名和常量聲明(被聲明爲靜態和最終變量聲明)。接口可能永遠不會包含方法定義。

http://en.wikipedia.org/wiki/Interface_(Java)

1

接口變量是靜態的,因爲Java接口不能在自己的權利被實例化。變量的值必須在靜態上下文中分配 - 不存在實例。最終修飾符確保賦給接口變量的值是一個真正的常量,不能被程序代碼重新賦值。

1

接口變量始終是靜態的和最終的。

相關問題