首頁  >  文章  >  Java  >  java中protect是什麼

java中protect是什麼

(*-*)浩
(*-*)浩原創
2019-05-27 17:56:279011瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:為什麼學java下一篇:為什麼學java