java的protected訪問修飾符理解

2021-06-13 12:59:48 字數 796 閱讀 7076

其實在某個類中定義的protected 方法和屬性和預設許可權方法和屬性是一樣的。

比如,某類的protected 方法和屬性在包外是不能通過該類物件進行訪問的(你能在包外訪問乙個類的預設許可權的方法和屬性嗎?當然不能),這就是為什麼在某物件所在的包的以外的任何地方,你不可以通過該類的物件引用來呼叫它的protected 方法和屬性,哪怕是在該類的子類中也不可以這樣做。在該類包外的子類中能「看到「的只是子類自己繼承來的protected 方法和屬性,它是不能「看到「它的父類物件的protected方法和屬性的。

父類:parent,位於certification包

子類child,位於other包

但是如果子類和父類位於同乙個包下,則可以使用超類例項的引用訪問該成員。如下:

有個neighbor類和child類位於同乙個包other中,neighbor類也不能訪問child 的繼承(受保護的)變數x。

總之:當乙個包外子類繼承保護成員時,該成員在這個子類內實際上變為私有,因此,只有這個子類及其子類能夠訪問它。

JAVA中protected的作用

1 public public表明該資料成員 成員函式是對所有使用者開放的,所有使用者都可以直接進行呼叫 2 private private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。3 protected prot...

關於java中 protected 的問題

對protected一直比較迷惑,最近又遇到類似問題,仔細研究了一下才搞懂。先大致說下 有空再貼上 幫助理解 首先問題 是 在父類中定義了乙個protected許可權的方法f 然後子類中 new了乙個父類物件,這時候用父類物件呼叫f 卻發現無法呼叫!子類與父類不在同乙個包下 原因 protected...

一種Java通用的FeatureMap訪問設計

首先,定義map物件,將map的value型別指定為object,它可以儲存任意基礎型別或自定義型別的值物件。由於值型別為object,在讀取map元素時,往往需要將值強制轉換為需要的型別。其實,可以返回值型別為范型優化 將型別轉換前置到get方法中,如下 created by jerry on 1...