基礎 | Java的四大訪問修飾符
阿新 • • 發佈:2018-11-03
「Java中四大訪問修飾符」 的相關問題在面試的時候很少被問到,但還是需要足夠理解。相信大家對public、private和預設的修飾符都比較瞭解,用的也比較多,但你真的瞭解protected修飾符嗎?
建議重點關注Java中 「protected許可權修飾符」 的相關問題。
Java中四大訪問修飾符
Java中的訪問控制主要分四種級別,如下表:
修飾符 | 當前類 | 同包 | 子類 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
注意:Java中外部類的修飾只能是public或預設,類的成員(包括內部類)的修飾可以是以上四種。
在專案中的哪些地方用到過protected?
相信這個問題,會把部分人搞蒙掉。說實話,我在專案中也沒怎麼用到過,在此僅做拋磚引玉用,大家有更好的回答歡迎留言哈。
參考答案:
受保護(protected)對子類相當於公開,對不是同一包中的沒有父子關係的類相當於私有。我在專案中確實沒怎麼使用過,但我知道有一種場景比較適合使用protected修飾符。
Object類中對clone方法的宣告即用到了protected訪問修飾符,這是因為Object類的clone方法只能實現淺克隆,而並不能實現常使用的深克隆,這就要求子類在需要克隆物件時儘量重寫clone方法,此時即宣告為protected的,以保證在需要克隆物件時,必須要求待克隆物件所在的類實現Cloneable介面並重寫clone方法。
該場景比較抽象,建議好好閱讀下深拷貝與淺拷貝。
推薦閱讀
歡迎關注
Java名企面試吧,每天10點24分,我們不見不散!
丙子先生的宗旨是,每天以短篇幅講高頻面試題,不增加太多負擔,但需要持之以恆。
能力有限,歡迎指教!