package com.kenwublog.tmp; public class A extends B { public int a = 100; public A() { super(); System.out.println(a); a = 200; } public static void main(String[] args) { System.out.println(new A().a); } } class B { public B() { System.out.println(((A) this).a); } }
例子代码很简单,不多做解释了,直接看输出:
0
100
200
我做错了,总结一下:
初始化顺序:
(静态变量,静态代码块)>(变量,初始化模块)>构造函数
父静态->子静态->父变量->父构造–>子变量->子构造