对象初始化顺序如下:
静态构造方法被调用
派生类静态成员初始化
派生类静态构造方法被调用
派生类实例成员初始化
基类静态成员初始化
基类静态构造方法被调用
基类实例成员初始化
基类实例构造方法被调用
派生类实例构造方法被调用
归纳结论:
子类的静态字段→子类静态构造函数→子类的实例字段→跳到子类构造函数入口,并跳转到父类→父类静态字段→父类静态构造函数→父类实例字段→父类构造函数→执行子类的构造函数
对象初始化顺序如下:
静态构造方法被调用
派生类静态成员初始化
派生类静态构造方法被调用
派生类实例成员初始化
基类静态成员初始化
基类静态构造方法被调用
基类实例成员初始化
基类实例构造方法被调用
派生类实例构造方法被调用
归纳结论:
子类的静态字段→子类静态构造函数→子类的实例字段→跳到子类构造函数入口,并跳转到父类→父类静态字段→父类静态构造函数→父类实例字段→父类构造函数→执行子类的构造函数