我有一個類的實例變量Avo,包ger1,帶有protected修飾符。訪問受保護的成員
package ger1;
public class Avo {
protected int i = 1;
}
然後,我有一個類排它是包GER2,擴展的AVO和訪問由實例變量,到目前爲止正常...
package ger2;
public class Pai extends Avo {
public Pai() {
i++
}
}
但保護成員的Kathy Sierra的書上說, ,「一旦子類繼承了受保護的成員,該成員(由子類繼承)對於子類之外的任何代碼都是私有的,除了子類的子類之外。」
但是,如果我嘗試通過類派的實例訪問成員它是允許的!但是,Filho類必須與Avo相同。爲什麼這個?這是正常的?
package ger1;
import ger2.Pai;
public class Filho {
public Filho() {
Pai pai = new Pai();
pai.i++;
}
}
你能提供一個參考(如,一個鏈接或類似的東西)的書,你是什麼意思?同時,爲了清除訪問修飾符上的問題,我推薦使用java教程http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html –
這本書是「Java認證程序員6學習指南「,作者Kathy Sierra,第36頁。 – Andrey