簡體   English   中英

為什么接口有字段而且它們是公開的?

[英]Why interface has fields and they're public?

我知道默認情況下這些字段是public static final的,我的問題是為什么它是public

我想我的問題來自為什么接口有字段。 奇怪的是,我從本網站上的其他答案中閱讀並接受了它們是static final ,但為什么public對我來說很困惑。

接口旨在由其他類實現,而不是封裝任何數據。 這就是為什么所有字段都是公開的。

相關規范: https : //docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.3

接口主體中的每個字段聲明都是隱式公共的、靜態的和最終的。 允許為此類字段冗余指定任何或所有這些修飾符。

您只能重復確認您想要公開,嘗試更改它會導致編譯時錯誤。

Private 幾乎完全沒有意義(實現類將無法看到該字段)。 如果你什么都不說,你就會公開而不是通常的“包”可見性。 並且您無法指定受保護。 不確定是否有想要的有效用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM