继承时的java公共字段

继承时的java公共字段,java,Java,假设有两类: class A{ public int a=0; } class B extents A{ public int a=1; } 我尝试过以下代码: A a=new B(); B a1=new B(); a.a是0,a1.a是1 是否有任何方法可以访问a1的super.a?在类B中创建一个方法,通过super.a获取超类变量a的值 使用a1.superClassA从类a获取a的值在B中定义一个方法以返回它。您始终可以执行a1.a。似乎我们必须使用函数来获取值,不是

假设有两类:

class A{
    public int a=0;
}
class B extents A{
    public int a=1;
}
我尝试过以下代码:

A a=new B();
B a1=new B();
a.a是0,a1.a是1


是否有任何方法可以访问a1的super.a?

在类B中创建一个方法,通过super.a获取超类变量a的值


使用a1.superClassA从类a获取a的值

在B中定义一个方法以返回它。您始终可以执行a1.a。似乎我们必须使用函数来获取值,不是吗?是的,因为Java不允许变量重写。
class A {  
    public int a=0;
}  

class B extends A {  
    public int a=1;

    public int superClassA() { 
        return super.a; 
    } 
}