不确定是否存在类似的问题或之前已经回答过。我进行了搜索,但找不到任何相关内容。
请看下面的例子。有一个没有参数构造器的 A 类。B 类扩展 A 类,但不存在默认构造函数。输出是B->get c,我认为java使用运行时多态逻辑来调用B对象方法。
这里想了解它是否正确以及Java如何在这里工作(也许是什么底层逻辑)
谢谢
public class A {
    private String cStr="";
    private String dStr="";
    A()
    {
        getcStr();
    }
    public String getcStr() {
        System.out.println("A-> get c");
        return cStr;
    }
    public String getdStr() {
        System.out.println("A-> get d");
        getcStr();
        return dStr;
    }
}
public class B extends A{
    private String cStr;
    public String getcStr() {
        System.out.println("B-> get c");
        return cStr;
    }
}
public static void main (String[] args)
{
    A a= new B();
    a.getdStr();
}
编辑: a.getdStr() 的输出是 A-> get d B-> get c