Java 如何直接访问m1()方法中的类A变量?

Java 如何直接访问m1()方法中的类A变量?,java,Java,我有一个类a,它包含一个默认变量。我创建了一个子类B,它扩展了类a,又创建了一个子类C,它扩展了类B 我想访问子类Cm1()方法中的类A变量。有什么直接的方法可以访问它吗?更改这一行 class A { int i = 10; } class B extends A { int i = 20; } public class C extends B{ int i = 30; public static void main(String[] args) {

我有一个类a,它包含一个默认变量。我创建了一个子类B,它扩展了类a,又创建了一个子类C,它扩展了类B

我想访问子类C
m1()
方法中的类A变量。有什么直接的方法可以访问它吗?

更改这一行

class A {
    int i = 10;
}

class B extends A {
    int i = 20;
}

public class C extends B{
    int i = 30;

    public static void main(String[] args) {
        C c = new C();
        c.m1();
    }

    public void m1() {
        System.out.println(i);       // 30
        System.out.println(super.i); // 20
    }
}


要使你的生活复杂化,请尝试以下方法:

System.out.println(((A)this).i);
public void m1(){
System.out.println(this.i);
C=新的C();

类…为什么所有这些变量都有相同的名称?只是给它们不同的名称。或者,如果你需要原始值,不要更改它。看起来类A是你的母类,那么为什么你不在类C上扩展类A呢?@FoxCy他这样做,通过扩展B,它扩展了@FoxCy的一个可能的副本。我认为这段代码是非常小的用一个实际的例子来说明他试图做什么,而不是他(试图)使用的完整代码
System.out.println(((A)this).i);
public void m1() {
    System.out.println(this.i);
    C c = new C();
    Class<? extends Object> cls = c.getClass().getSuperclass().getSuperclass();
    Field[] fields = cls.getDeclaredFields();
    for ( Field field : fields )
    {
        String in = field.getName();
        int iv = field.get((Object)c);
        System.out.println(iv);
    }
}