编辑代码

class Main {
	public static void main(String[] args) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
        AClass aClass = new AClass();
        BClass bClass = new BClass();

        aClass.p1();
        bClass.p1();
	}
}

class AClass {
    int a;
    float a1;

    public AClass(){
        a = 50;
        a1 = 99.99f;
    }
    // 构造普通的成员方法
    public void p1(){
        System.out.println("this is a method of A");
        System.out.println("a="+a);
    }
}

class BClass extends AClass {
    // 与父类的成员变量名相同,属于变量隐藏现象
    int a;

    public BClass(){
        // 无法访问AClass中的a,因为其已经被隐藏
        a = 10;
        a1 = 123.6f;
    }

    // 与父类的成员方法名相同,属于方法覆盖现象
    public void p1(){
        System.out.println("this is a method of B");
        // 此时 a 是 BClass 的变量值
        System.out.println("a="+a);
        // 通过super关键字调用被覆盖的父类成员方法
        super.p1();
        // 通过super关键字访问被隐藏的父类成员变量
        System.out.println("super.a="+super.a);
    }
}