这个问题一般人做不对的
public class A {
    public A() {
        System.out.println("A");

    }

    int a = 1;

    double d = 2.0;

    void show() {
        System.out.println("Class A: a=" + a + "\tb=" + d);
    }
}

public class B extends A {
    public B() {
        System.out.println("B");
    }

    float a = 3.0f;

    String d = "java prog";

    void show() {
        // super.show();
        System.out.println("CLoas b=" + a + "\td=" + d);
    }

}


public class C {

    public static void main(String[] args) {
        A b=new B();
        System.out.println(b.a);
        b.show();
    }
   
}


先别看下面的答案,自己做看看

A
B
1
CLoas b=3.0    d=java prog

其实这个里面包含了两个概念:
1 程序运行顺序
2 还有一个就是变量的优先级的问题,你作对了码?