java中,sub类继承自super类的成员变量赋值后,为什么输出this和super都是子类的该变量值

初学java,学到继承时乱敲代码时想到这样一个问题,先放代码

class A{
    public int a;
}
class B extends A{
    public void b(){
        a=5;
        System.out.println(this.a);
        System.out.println(super.a);
    }
}
class C{
    public static void main(String[] args){
        B b=new B();
        b.b();
    }
}

最后输出结果为5,5。作为一个初学者,没有太搞懂这其中的关系,this指向当前对象,super指向超类,那么a=5这一步后不应该是this.a=5,super.a=0吗?

希望各位指点一下。

你加了extends 吗
class B extends A{
public void b(){
a=5;
System.out.println(this.a);
System.out.println(super.a);
}
}

因为这里的this和super指的是同一个对象

因为你只有一个a 属性啊,你B继承了A, 给B的a赋值,也就是给A的a赋值(其实地址指向同一个),所以 this.a=super.a