当我经历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嵌套();' –