1 代码分析
- 父/子类常量->父类静态属性->子类静态属性->父类实例属性->父类构造器->子类实例属性->子类构造器
- 属性就是字段,不是方法,但是字段也可以由方法来赋值,这样就可以通过初始化属性来间接调用方法
public class 父类 {
private String str = getStr();
{
System.out.println("父类的实例块");
}
public 父类() {
System.out.println("父类的构造方法");
}
private static String staticStr = getStaticStr();//运行到这里时, CONST == "父类staticfinal",CONS == null:说明 static final 修饰的常量,在类初始化之前就已赋值(准确的是在准备阶段),修饰的方法和普通的 static 修饰赋值时间一样!
//测试 static final 修饰的变量赋值时间
public static final String CONST = "父类staticfinal";
public static final String CONS = staticFinalSup();
static {
System.out.println("父类的静态块")