首頁 > Java > java教程 > 為什麼我無法從另一個套件存取 Java 子類別中的受保護成員?

為什麼我無法從另一個套件存取 Java 子類別中的受保護成員?

Linda Hamilton
發布: 2024-12-10 04:47:12
原創
878 人瀏覽過

Why Can't I Access a Protected Member in a Java Subclass From Another Package?

理解Java 的protected 修飾符

問題:

考慮兩個類別A 和C,其中C 擴展了A。假設A 將實例變數宣告為 protected int protectedInt = 1。儘管期望受保護的成員應該可以在對於其他套件中的子類,Eclipse 將對類 C 中的 protectedInt 的存取標記為不可見。

答案:

Java protected 修飾符允許存取其自己包中的成員以及子類,但僅當透過子類的實例進行存取時。這是因為受保護的存取範圍僅限於子類別類型,而不是聲明受保護成員的類別。

根據 Java 語言規範 (JLS),「僅允許在子類體內進行存取」 C 的 S。 」這意味著即使C 擴展了A,也不允許從A 的實例直接訪問protectedInt。

解決方案:

訪問子類中的protected 成員,必須使用子類類型。 (C) 的實例進行的,因此受保護的成員是可見的。

以上是為什麼我無法從另一個套件存取 Java 子類別中的受保護成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板