從子類中間接訪問超類的私有成員的例子是什麼?訪問超類的私有成員
嵌套類可以訪問其包含的所有私有成員 類 - 這兩個字段和方法。因此,由子類繼承的公共或受保護的嵌套類可間接訪問超類的所有私有成員。
報價從http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
從子類中間接訪問超類的私有成員的例子是什麼?訪問超類的私有成員
嵌套類可以訪問其包含的所有私有成員 類 - 這兩個字段和方法。因此,由子類繼承的公共或受保護的嵌套類可間接訪問超類的所有私有成員。
報價從http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
在帖中,我們談論「嵌套」類
這裏是一個內部類如何訪問外部類的私有區域的例子。
class OuterClass {
private int x = 7;
public void makeInner(){
InnerClass in = new InnerClass();
in.seeOuter();
}
class InnerClass {
public void seeOuter() {
System.out.println("Outer x is " + x);
}
}
public static void main(String[] args) {
OuterClass.InnerClass inner = new OuterClass().new InnerClass();
inner.seeOuter();
}
}
最後,如果你用將InnerClass擴展一個類,他們也將訪問在OuterClass的私人領域,如果你將InnerClass是公共或保護
應當假定(但編譯器不執行它,僅警告),即一個private
方法將結束正在由public
,protected
或默認方法(否則它是無用的)。
因此,擴展類可以通過調用public
,protected
或結束調用私有方法的默認方法來「間接」調用private
方法。
是的,我們可以訪問私有通過超類的公共方法,可以從子類的引用變量中調用子類的引用ID來調用子類中的超類的成員。 例如: -
class Base
{
private int x=10;
void show()
{
System.out.println(x);
}
}
class Child extends Base
{
public static void main(String... s)// public static void main(String[] args)
{
//rom jdk 1.7 main can be defined like above
Child c=new Child();
c.show();
}
}
輸出將是10
因此,在這種情況下,它不會有機會獲得公共修飾符的方法普通班不同的子類 –
時訪問類型可以這樣做其他班也是如此。我的問題是關於具體的報價案例。 –