現在我們已理解了繼承的概念,protected 這個關鍵字最后終于有了意義。在理想情況下,private 成員隨時
都是“私有”的,任何人不得訪問。但在實際應用中,經常想把某些東西深深地藏起來,但同時允許訪問衍
生類的成員。protected 關鍵字可幫助我們做到這一點。它的意思是“它本身是私有的,但可由從這個類繼
承的任何東西或者同一個包內的其他任何東西訪問”。也就是說,Java 中的protected 會成為進入“友好”
狀態。
我們采取的最好的做法是保持成員的private 狀態——無論如何都應保留對基 礎的實施細節進行修改的權
利。在這一前提下,可通過protected 方法允許類的繼承者進行受到控制的訪問:
//: 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(受到保護的)。 本文出自:億恩科技【www.endtimedelusion.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]
|