结论:
一.实例构造函数与静态构造函数:
1.实例构造函数与静态构造函数执行顺序
一、初始化次序(依次是静态变量、静态构造函数、构造函数)
二、初始化次数(静态的都只会初始化一次)
三、初始化时机(对于静态的只要使用了类,就会初始化,非静态的则要在创建对象的时候才初始化);
2.创建子类实例时,其所有构造函数和变量的调用顺序为:
子类静态变量初始化>子类静态构造函数>父类静态变量初始化 > 父类静态构造函数 > 父类实例变量初始化>父类实例构造函数 > 子类实例变量初始化>本身实例构造函数。
例子:
父类:
子类:
主函数:
执行结果:
跟实例构造函数的调用顺序刚好相反,所以创建子类实例时,其所有构造函数和变量的调用顺序为:
子类静态变量初始化>子类静态构造函数>父类静态变量初始化 > 父类静态构造函数 > 父类实例变量初始化>父类实例构造函数 > 子类实例变量初始化>本身实例构造函数。