我有一個帶有受保護成員的 A 類:
package p1;
public class A{
protected int number;
}
現在我將它子類化到另一個包中:
package p2;
public class B extends A{}
現在在主要課程中:
package p3;
public class Main{
public static void main(String[] args){
B b = new B();
System.out.println(b.number);
}
}
這完美地執行。子類中受保護成員的可見性是什么?它們會公開嗎?然后我嘗試了以下也沒有顯示任何錯誤:
System.out.println(new A().number);
看到這個后,我得出結論,我正在做一些非常愚蠢的事情或誤解了protected說明符的使用。我學到的方式:protected成員只能在子類中訪問,而與包無關,并且它們保持相同的可行性。但是即使在父類中,我也能夠number像變數一樣訪問成員。public
請幫助我了解這里發生了什么。
uj5u.com熱心網友回復:
在超類中宣告為protected的變數、方法和建構式只能由其他包中的子類或受保護成員類的包中的任何類訪問。
您可以在此處閱讀有關此內容的更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/433917.html
下一篇:對命名模板引數無效使用不完整型別
