[英]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.