【java】怎么让被强转为父类的对象保持原有的属性。

编程语言:java JDK 1.8
实例代码:

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

此代码的输出结果为5不为10。
所以我要问的是:怎么让对象强转后,属性保持不变(也就是让这个程序输出10)。

可以在子类B中添加一个方法,如下所示:

class B extends A {
    public int a = 10;
    
    public int getA() {
        return a;
    }
}

然后在main方法中调用该方法:

public class Dome {
    public static void main(String[] args) {
        B b = new B();
        System.out.println(b.getA());
    }
}

这样就可以输出10了。

注意:如果要在父类中访问子类的属性或方法,需要在子类中提供对应的getter方法。否则会访问父类的属性或方法。