Java 如何通过Super关键字获取变量的值?

Java 如何通过Super关键字获取变量的值?,java,super,Java,Super,我有三个类A,B,CB类扩展A类,C类扩展B类 我想获得class a中存在的整数a的值,并在class C中打印该值。我的第一个选择是通过super关键字打印 package testee; import java.util.Scanner; public class Testee { public static void main(String[] args) { new C(); } } class A{ int a=10;

我有三个类
A
B
C
B类扩展A类,C类扩展B类

我想获得
class a
中存在的整数
a
的值,并在
class C
中打印该值。我的第一个选择是通过
super
关键字打印

package testee;
import java.util.Scanner;


public class Testee {

    public static void main(String[] args) {

        new C();

    }
}


class A{

    int a=10;

    A(){

        System.out.println(a);
    }

}


class B extends A{

    int a=13;

    B(){

        System.out.println(a);
    }

}


class C extends B{

     int a=21;

     C(){

         System.out.println(super.a);
     }
}
在继承层次结构中多次使用同名字段称为“隐藏字段”

对字段(和静态方法)的访问基于所用引用的(静态)类型。这意味着,如果您将引用(这里是)转换为您想要的类型(在这种情况下是A)并访问字段,那么您将得到属于A的字段

如果将C赋值给变量,也会以同样的方式工作。如果变量类型为A,则会得到A.A


无论如何:请不要在生产代码中使用隐藏字段

非常感谢您的帮助…但我无法理解此代码…请给我写下。。。
System.out.println(((A)this).a);