Java 教程

Java控制語句

面向物件程式設計

Java內建類

Java檔案處理

Java錯誤和異常

Java多執行緒

Java同步

Java網路程式設計

Java集合

Java介面

Java資料結構

Java集合演算法

高階Java

Java雜項

Java APIs和框架

Java類引用

Java有用資源

Java - protected關鍵字



Java提供許多訪問修飾符來設定類、變數、方法和建構函式的訪問級別。四個訪問級別是:

  • 對包可見,這是預設值。不需要修飾符。

  • 僅對類可見(private)。

  • 對全世界可見(public)。

  • 對包和所有子類可見(protected)。

訪問控制和繼承

強制執行以下繼承方法規則:

  • 在超類中宣告為public的方法在所有子類中也必須為public。

  • 在超類中宣告為protected的方法在子類中必須為protected或public;它們不能為private。

  • 私有方法根本不會被繼承,因此沒有針對它們的規則。

受保護的訪問修飾符 - protected

在超類中宣告為protected的變數、方法和建構函式只能被其他包中的子類或受保護成員類的包中的任何類訪問。

protected訪問修飾符不能應用於類和介面。方法、欄位可以宣告為protected,但是介面中的方法和欄位不能宣告為protected。

protected訪問使子類有機會使用輔助方法或變數,同時阻止不相關的類嘗試使用它。

示例

以下類使用受保護的訪問控制。我們使用瞭如下所示的受保護欄位:

package com.tutorialspoint;

public class JavaTester {

   protected String format;

   public String getFormat() {
      return this.format;
   }

   public void setFormat(String format) {
      this.format = format;
   } 

   public void print() {
      System.out.println(this.format);
   }

   public static void main(String args[]) {
      JavaTester tester = new JavaTester();
	  tester.format = "XML";
   }	   
}

輸出

XML

這裡,Logger類的format變數是受保護的,因此可以直接使用Logger類的引用來訪問此變數。

但是,作為最佳實踐,為了使此變數可供外部世界使用,我們定義了兩個公共方法:getFormat(),它返回format的值,以及setFormat(String),它設定其值。

以下是protected訪問識別符號的另一個示例。我們在超類中定義了一個受保護的欄位。如果欄位/方法受保護,則子類可以繼承它。

示例

package com.tutorialspoint;

class Logger {
   protected String format;

   public void print() {
      System.out.println(this.format);
   }
}

public class JavaTester extends Logger {   
   public static void main(String args[]) {
      JavaTester tester = new JavaTester();

      tester.format = "XML";
      tester.print();
   }	   
}

輸出

XML
java_basic_syntax.htm
廣告
© . All rights reserved.