關於java中 protected 的問題

2021-06-22 02:40:00 字數 496 閱讀 7492

對protected一直比較迷惑,最近又遇到類似問題,仔細研究了一下才搞懂。。先大致說下   有空再貼上**幫助理解

首先問題**是  在父類中定義了乙個protected許可權的方法f()   然後子類中  new了乙個父類物件,這時候用父類物件呼叫f()   卻發現無法呼叫!(子類與父類不在同乙個包下)

原因:protected許可權的定義是    繼承父類的子類可以呼叫這個方法        意思是只有滿足這個條件的類------繼承了父類的子類    才能訪問這個方法f()      而父類不是子類(這句話好好理解一下) 所以說父類無法訪問protected許可權的方法      protected 和 public  private  一樣都是一種許可權 沒有特殊性  它的許可權就是   只有子類可以訪問。

而如果把父類子類放在同乙個包下 那麼父類可以訪問f()    這是因為在同乙個包下首先有包訪問許可權  可以理解為這時的protected 有包訪問性。

第一次寫部落格,不足之處請見諒。大家共同討論共同進步。

Swift中的訪問控制和protected

原文再續,書折第一回。很多其他程式語言都有一種 protected 設定,可以限制某些類方法只能被它的子類所使用。swift支援了訪問控制後,大家給我們的反饋都很不錯。而有的開發者問我們 為什麼swift沒有類似protected的選項?當我們在設計swift訪問控制的不同等級時,我們認為有兩種主要...

Java中關於遞迴演算法

首先演示乙個遞迴 public class testrecursion public static void main string args 乙個簡單的遞迴 乙個方法呼叫其本身方法 當然此程式執行有異常,只是說明遞迴原理 改善程式 public class testrecursion else p...

關於Java中Synchronized互斥範圍小結

synchronized的使用比較簡單,就是對 進行同步。但是昨天在看書的時候發現了乙個比較困惑的地方,就是類和例項物件之間的同步。有以下幾種情況 1.靜態方法間的同步即對類物件進行同步,執行緒對test1和test2方法的訪問是互斥的 static synchronized void test1 ...