执行顺序:
1.执行父类静态代码;
2.执行子类静态代码;
3.初始化父类成员变量(我们常说的赋值语句);
4.执行父类构造函数(即使子类有构造函数,父类构造函数也一定会执行,除非子类主动写super(),否则一般父类构函在子类构函前执行);
5.初始化子类成员变量;
6.执行子类构造函数;
执行顺序:
1.执行父类静态代码;
2.执行子类静态代码;
3.初始化父类成员变量(我们常说的赋值语句);
4.执行父类构造函数(即使子类有构造函数,父类构造函数也一定会执行,除非子类主动写super(),否则一般父类构函在子类构函前执行);
5.初始化子类成员变量;
6.执行子类构造函数;