对象创建时代码的执行顺序/静态/非静态代码块

在创建派生类对象,构造函数的执行顺序()
正确答案: A

  • A 基类构造函数,派生类对象成员构造函数,派生类本身的构造函数

  • B 派生类本身的构造函数,基类构造函数,对象成员构造函数

  • C 基类构造函数,派生类本身的构造函数,派生类对象成员构造函数

  • D 对象成员构造函数,基类构造函数,派生类本身的构造函数

对象创建时代码的加载顺序为:静态代码--> 成员初始化 --> 非静态代码 --> 构造方法。

若继承了父类,则加载顺序为:父类的静态的代码 --> 子类的静态的代码 --> 父类成员初始化 --> 父类内部非静态代码 --> 父类的构造方法 --> 子类成员初始化 --> 子类的非静态代码 --> 子类的构造方法。

静态代码块:随类存在,类初始化时执行一次,貌似优先于main主方法执行

非静态代码块:随对象存在,创建几次对象就执行几次,且优先于构造方法执行

原文地址:https://www.cnblogs.com/xxxxxiaochuan/p/13768223.html