从子类中间接访问超类的私有成员的例子是什么?访问超类的私有成员
嵌套类可以访问其包含的所有私有成员 类 - 这两个字段和方法。因此,由子类继承的公共或受保护的嵌套类可间接访问超类的所有私有成员。
报价从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
因此,在这种情况下,它不会有机会获得公共修饰符的方法普通班不同的子类 –
时访问类型可以这样做其他班也是如此。我的问题是关于具体的报价案例。 –