子类在创建对象时会执行以下代码:
(1)父类静态代码块(java虚拟机加载类时,会执行代码仅一次)
(2)子类静态代码块(java虚拟机加载类时,会执行代码仅一次)
以上发生在JVM虚拟机类加载过程
(3)初始化父类的普通成员变量和代码块,再执行父类构造方法(每次创建新对象都会执行)
(4)初始化子类的普通成员变量和代码块,再执行子类构造方法(每次创建新对象都会执行)
子类在创建对象时会执行以下代码:
(1)父类静态代码块(java虚拟机加载类时,会执行代码仅一次)
(2)子类静态代码块(java虚拟机加载类时,会执行代码仅一次)
以上发生在JVM虚拟机类加载过程
(3)初始化父类的普通成员变量和代码块,再执行父类构造方法(每次创建新对象都会执行)
(4)初始化子类的普通成员变量和代码块,再执行子类构造方法(每次创建新对象都会执行)