构造函数先于成员变量初始化

在下面的例子中,x=1; y=1; 会先被调用,然后才是int color = 0xFF00FF被调用。

class Point {
    int x, y;
    Point() { x = 1; y = 1; }
}
class ColoredPoint extends Point {
    int color = 0xFF00FF;
}
class Test {
    public static void main(String[] args) {
        ColoredPoint cp = new ColoredPoint();
        System.out.println(cp.color);
    }
}

https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。