在java中,有三種訪問級別:的Java保護訪問不工作
- 公共 - 向世界開放
- 私人 - 只開放給類
- 保護 - 只開放給班級和它的子類(繼承)。
那麼爲什麼java編譯器允許這種情況發生?
TestBlah.java:
public class TestBlah {
public static void main(String[] args) {
Blah a = new Blah("Blah");
Bloo b = new Bloo("Bloo");
System.out.println(a.getMessage());
System.out.println(b.getMessage()); //Works
System.out.println(a.testing);
System.out.println(b.testing); //Works
}
}
Blah.java:
public class Blah {
protected String message;
public Blah(String msg) {
this.message = msg;
}
protected String getMessage(){
return(this.message);
}
}
Bloo.java:
public class Bloo extends Blah {
public Bloo(String testing) {
super(testing);
}
}
還有包訪問。這是沒有修飾符的默認值。 – jjnguy 2008-12-02 03:19:33
你確定沒錯 - a.testing和b.testing沒有聲明。 你是指a.message和b.message? – 2008-12-02 03:19:49