gpt4 book ai didi

java - 在构造函数中,为什么在执行父类(super class)构造函数之前不能引用当前类的字段?

转载 作者:行者123 更新时间:2023-11-30 07:56:20 24 4
gpt4 key购买 nike

<分区>

例如,

Subclass extends ParentClass {
private String subclassField;
Subclass() {
// it's illegal
super(subclassField);
}
}

这引入了编译错误“在调用构造函数时无法引用实例字段”。

StackOverflow 中关于这种情况的类似问题的一些答案转到“因为当前实例仍在构建中”或“尚未在堆中创建实例”。

然而,令人困惑的是,在父类(super class)构造函数中,可以调用可重写的成员方法,这些方法可以访问子类当前实例的字段。在 Java 中没问题。

我的查询是

  1. 实例构造过程中,从哪个时刻开始可以引用子类的字段?

  2. “在调用构造函数时不能引用实例字段”背后的基本原理是什么,而在父类(super class)构造函数中调用可覆盖方法是可以的?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com