对于类继承的情况,我发现了以下对象初始化顺序:
- 父类的静态字段;
- 父类的静态初始化块;
- Child 类的静态字段;
- Child类的静态初始化块;
- 父类的非静态字段;
- 父类的非静态初始化块;
- 父类构造函数;
- Child 类的非静态字段;
- 类 Child 的非静态初始化块
- 子类构造函数。
但是,如果父项和子项中都有多个构造函数怎么办——它们是如何加载的?parent 的所有构造函数,然后是 successor,还是按书写顺序一次一个?
在面试中,有人向我展示了一个示例,说明继承人的构造函数(或其执行 - 我记不清了)可能由于父母构造函数的顺序而出现错误,但我无法在任何地方找到明确的信息并且代码中这种情况的示例。你能澄清这一点吗?