當我經歷this文章,下部分私有成員在一個超,我看到了這條線繼承的嵌套類到子類
嵌套類訪問其封閉的所有私有成員 類 - 這兩個字段和方法。因此,由子類繼承的公共或受保護的嵌套類可間接訪問超類的所有私有成員。
我的問題是我們如何能夠直接訪問Nested
類Base
在Derived
(就像我們可以訪問任何public
,protected
領域)?
和
如果有一種方法,怎麼能Derived
訪問p
這是Base
私人領域通過Nested
?
public class Base {
protected int f;
private int p;
public class Nested {
public int getP() {
return p;
}
}
}
class Derived extends Base {
public void newMethod() {
System.out.println(f); // i understand inheriting protected field
// how to access the inherited Nested class here? and if accessed how to retrieve 'p' ?
}
}
在此感謝您的時間和精力!
注意'Nested'取決於'實例Base',這就是爲什麼'Nested'的一個實例可以訪問'Base'的東西。 'Base'實例化隱含在'new Base.Nested()'上。 I. e。你可以這樣寫: 'Base myBase = new Base(); Base.Nested theClassBro = myBase.new嵌套();' –