首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java protected 關鍵字深度解析:衍生類別的專屬訪問權

     編輯:Java 相關知識

protected 的意義與定位

理解繼承概念後,protected 關鍵字才真正展現其價值。理想情況下,private 成員完全私有,任何外部代碼不可訪問。但實務上常需「深藏內部細節,卻允許衍生類別存取」,protected 正是為此而生。其含義為:「對外私有,但允許繼承此類別的任何代碼、以及同一套件內的其他代碼訪問」。在 Java 中,protected 實際上賦予了「友好」存取權限。

最佳實務:private 配合 protected 方法

最佳做法是保持成員為 private,保留修改底層實作細節的權利;再透過 protected 方法,提供給衍生類別受控的存取管道。

程式碼範例:Villain 與 Orc

//: Orc.java
// The protected keyword
import java.util.*;

class Villain {
    private int i;
    protected int read() { return i; }
    protected void set(int ii) { i = ii; }
    public Villain(int ii) { i = ii; }
    public int value(int m) { return m * i; }
}

public class Orc extends Villain {
    private int j;
    public Orc(int jj) { super(jj); j = jj; }
    public void change(int x) { set(x); }
} ///:~

change() 能呼叫 set(),正是因為後者被宣告為 protected(受保護)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved