如何使用子类对象访问隐藏的超类成员

fly*_*yno 1 java inheritance

有没有办法在另一个类中使用子类的对象访问由子类成员隐藏的超类成员.

public class A {
    int i, j;

    A() {
        i = 5;
        j = 5;
    }
}

public class B extends A {
    int i;

    B() {
        super();
        i = 10;
    }
}

class TestEx {
    public static void main(String[] args) {
        B obj = new B();
        // i from B
        System.out.println(obj.i);
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要在使用obj的testEx中从A中获取...在非静态内部类的情况下存在相同的疑问..无论如何在InnerClass中的OuterClass的acess变量中具有与InnerClass中的一个相同的名称

Mar*_*nik 5

就像((A)this).i在类B的实例方法中一样简单,或者甚至更简单,

A obj = new B(); 
System.out.println(obj.i);
Run Code Online (Sandbox Code Playgroud)

为什么?因为除了实例方法之外的任何内容都不受动态绑定和覆盖的影响.该类B具有其祖先的所有实例变量.