package com.msxf.demo.init;
import lombok.extern.slf4j.Slf4j;
/**
* @author: hzq
* @date: 2022/4/20 9:57
*/
@Slf4j
public class ClassInitParent {
public static String PARENT_STATIC = "父类静态属性";
public String PARENT_SIMPLE = "父类普通属性";
static {
log.info(PARENT_STATIC);
}
{
log.info(PARENT_SIMPLE);
}
public ClassInitParent() {
log.info("ClassInitParent 构造器");
}
}
package com.msxf.demo.init;
import lombok.extern.slf4j.Slf4j;
/**
* 类初始化过程
* new ClassInitChildren();
* 1、父类静态属性
* 2、父类静态代码块
* 3、子类静态属性
* 4、子类静态代码块
* 5、父类普通属性
* 6、父类普通代码块
* 7、父类构造函数
* 8、子类普通属性
* 9、子类普通代码块
* 10、子类构造函数
* <p>
* 类静态属性和静态代码块 第一次使用的时候在初始化
* 普通属性和普通代码块 创建对象时在初始化
*
* @author: hzq
* @date: 2022/4/20 9:58
*/
@Slf4j
public class ClassInitChildren extends ClassInitParent {
public static String CHILDREN_STATIC = "子类静态属性";
public String CHILDREN_SIMPLE = "子类普通属性";
static {
log.info(CHILDREN_STATIC);
}
{
log.info(CHILDREN_SIMPLE);
}
public ClassInitChildren() {
log.info("ClassInitChildren 构造器");
}
}