1. 程式人生 > >基礎 | Java的四大訪問修飾符

基礎 | Java的四大訪問修飾符

「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分,我們不見不散!

丙子先生的宗旨是,每天以短篇幅講高頻面試題,不增加太多負擔,但需要持之以恆。

能力有限,歡迎指教!