请考虑以下代码.
class Base{
Base() {
print();
}
void print() {
System.out.println("Base");
}
}
class Child extends Base{
int i = 4;
public static void main(String[] args){
Base base = new Child();
base.print();
}
void print() {
System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
该程序将打印0,4.
我理解的是,将根据实际对象的类来选择要执行的方法,因此在这种情况下是Child.因此,当Base调用构造函数时,调用print方法,Child这样就会打印0,4.
请告诉我是否理解正确吗?如果是,我还有一个问题,而基类构造函数正在运行JVM如何调用Child方法,因为Child没有创建对象?
java ×1