首頁 > Java > java教程 > java中protect是什麼

java中protect是什麼

(*-*)浩
發布: 2019-05-27 17:56:27
原創
9062 人瀏覽過

protect是java中的權限關鍵字,一般是指定使用的範圍。

java中protect是什麼

protected: 

#父類別的被protected修飾的類別成員包內可見,並且對其子類別可見。

父類別與子類別不在同一個套件裡,子類別只可以存取從父類別繼承的protected成員,不能存取父類別實例化的成員。

我們可以透過以下幾個關於protected方法可見性的例子來進一步掌握protected關鍵字。在碰到涉及protected成員的呼叫時,首先要確定出該protected成員來自何方,其可見性範圍是什麼,然後就可以判斷出當前用法是否可行了

例子:

//示例一
package p1;
public class Father1 {
   protected void f() {}    // 父类Father1中的protected方法
}

package p1;
public class Son1 extends Father1 {}

package p11;
public class Son11 extends Father1{}

package p1;
public class Test1 {
   public static void main(String[] args) {
       Son1 son1 = new Son1();
       son1.f(); // Compile OK     ----(1)
       son1.clone(); // Compile Error     ----(2)

       Son11 son = new Son11();    
       son11.f(); // Compile OK     ----(3)
       son11.clone(); // Compile Error     ----(4)
   }
}
登入後複製

對於上面的範例,首先看(1)(3),其中的f()方法從類別Father1繼承而來,其可見性是包p1及其子類別Son1和Son11,而由於呼叫f()方法的類別Test1所在的套件也是p1,因此(1)(3)處編譯通過。其次看(2)(4),其中的clone()方法的可見性是java.lang套件及其所有子類,對於語句“son1.clone();”和“son11.clone();”,二者的clone()在類別Son1、Son11中是可見的,但對Test1是不可見的,因此(1)(3)處編譯不通過。

總結

protected是最難理解的一種Java類別成員存取權修飾詞。在程式設計中,碰到涉及protected的呼叫時,首先要確定出該protected成員來自何方,其可見性範圍是什麼,然後就正確無誤的使用了。

以上是java中protect是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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