san*_*hat 5 java inheritance nested-class
当我正想通过这个文章,下部分私人会员超类中,我看到了这条线
嵌套类可以访问其封闭类的所有私有成员,包括字段和方法。因此,子类继承的公共或受保护的嵌套类可以间接访问超类的所有私有成员。
我的问题是我们如何才能直接访问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' ?
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的时间和精力!
Base.Nested theClassBro= new Base.Nested();
Run Code Online (Sandbox Code Playgroud)
或者对于派生类,这应该有效:
Derived.Nested theClassBro= new Derived.Nested();
Run Code Online (Sandbox Code Playgroud)
我不确定你是否需要使用 super 关键字