PageCenter從FlowPanel擴展而不是從PageIndex擴展。它看起來像FlowPanel
沒有名爲prova
屬性如果你想PageCenter
使用super
關鍵字從PageIndex
訪問受保護的屬性,那麼你應該從PageIndex
延伸。
public class PageCenter extends PageIndex{
public PageCenter(){
prova = 2;
}
}
如果你想同時類從FlowPanel
擴展,嘗試重構你的代碼,以便PageIndex
和PageCenter
瞭解一些實用工具類。
public class ProvaUtility{
private Integer prova;
public Integer getProva(){}
public void setProva(Integer p){}
}
然後,你可以使用這樣的:
public class PageIndex extends FlowPanel{
private ProvaUtility utility;
private PageCenter center;
public PageIndex(ProvaUtility pu){
this.utility = pu;
this.center = new PageCenter(pu);
this.add(this.center);
}
public Integer getProva(){
return this.utility.getProva();
}
}
public class PageCenter extends FlowPanel{
private ProvaUtility utility;
public PageCenter(ProvaUtility u){
this.utility = u;
this.utility.setProva(2);
}
}
如果各地通過這個引用不讓它爲你,請嘗試使用Singleton
class ProvaSingleton{
private static ProvaSingleton instance = null;
private Integer prova;
private ProvaSingleton(){
prova = 2;
}
public static ProvaSingleton getInstance(){
if (instance == null){
instance = new ProvaSingleton();
}
return instance;
}
public Integer getProva(){ return this.prova;}
public void setProva(Integer p){this.prova = p;}
}
然後通過調用它:
ProvaInstance.getInstance().getProva()
來源
2010-11-10 22:00:07
Tom
uhm ..但受保護的屬性應該顯示每個變量在相同的包否? – markzzz 2010-11-10 22:01:31
相同的包,只要它延伸相同的對象。 PageCenter與PageIndex完全無關。 – 2010-11-10 22:04:16
是啊,你的解決方案工作!唯一的問題是我需要傳遞每一次參考,並且我有很多擴展。謝謝:) – markzzz 2010-11-10 22:24:20