相关疑难解决方法(0)

在使用Java运行构造函数代码之前是否初始化了字段?

任何人都可以解释以下程序的输出吗?我认为构造函数在实例变量之前被初始化.所以我期待输出为"XZYY".

class X {
    Y b = new Y();

    X() {
        System.out.print("X");
    }
}

class Y {
    Y() {
        System.out.print("Y");
    }
}

public class Z extends X {
    Y y = new Y();

    Z() {
        System.out.print("Z");
    }

    public static void main(String[] args) {
        new Z();
    }
}
Run Code Online (Sandbox Code Playgroud)

java constructor initialization

65
推荐指数
3
解决办法
2万
查看次数

标签 统计

constructor ×1

initialization ×1

java ×1