現(xiàn)在我們已理解了繼承的概念,protected 這個(gè)關(guān)鍵字最后終于有了意義。在理想情況下,private 成員隨時(shí)
都是“私有”的,任何人不得訪問。但在實(shí)際應(yīng)用中,經(jīng)常想把某些東西深深地藏起來,但同時(shí)允許訪問衍
生類的成員。protected 關(guān)鍵字可幫助我們做到這一點(diǎn)。它的意思是“它本身是私有的,但可由從這個(gè)類繼
承的任何東西或者同一個(gè)包內(nèi)的其他任何東西訪問”。也就是說,Java 中的protected 會(huì)成為進(jìn)入“友好”
狀態(tài)。
我們采取的最好的做法是保持成員的private 狀態(tài)——無論如何都應(yīng)保留對(duì)基 礎(chǔ)的實(shí)施細(xì)節(jié)進(jìn)行修改的權(quán)
利。在這一前提下,可通過protected 方法允許類的繼承者進(jìn)行受到控制的訪問:
//: 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()擁有對(duì)set()的訪問權(quán)限,因?yàn)樗膶傩允莗rotected(受到保護(hù)的)。 本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|