结论
- 基类静态代码块
- 子类静态代码块
- 基类代码块
- 基类构造函数
- 子类代码块
- 子类构造函数
验证代码
package com.zoterap.javabasic.classinit;
public class Base {
/**
* 1. 「基类」的静态代码块&静态成员变量,按照先后顺序执行
*/
//-----基类静态代码块 BEGIN-----
static {
System.out.println("基类静态代码块1");
}
private static String staticValue = LogUtil.print("基类静态成员变量");
static {
System.out.println("基类静态代码块2");
}
//-----基类静态代码块 END-----
/**
* 3. 「基类」代码块&成员变量,按照先后顺序执行
*/
//-----基类代码块 BEGIN-----
{
System.out.println("基类代码1");
}
private String value = LogUtil.print("基类成员变量");
{
System.out.println("基类代码2");
}
//-----基类代码块 END-----
/**
* 4. 「基类」构造函数
*/
Base() {
System.out.println("基类构造函数");
}
static class Son extends Base {
/**
* 2. 「子类」的静态代码块&静态成员变量,按照先后顺序执行
*/
//-----子类静态代码块 BEGIN-----
static {
System.out.println("「子类」静态代码块1");
}
private static String staticValue = LogUtil.print("「子类」静态成员变量");
static {
System.out.println("「子类」静态代码块2");
}
//-----子类静态代码块 BEGIN-----
/**
* 5. 「子类」代码块&成员变量,按照先后顺序执行
*/
//-----子类代码块 BEGIN-----
{
System.out.println("「子类」代码块1");
}
private String value = LogUtil.print("「子类」成员变量");
{
System.out.println("「子类」代码块2");
}
//-----子类代码块 END-----
/**
* 6. 「子类」构造函数
*/
Son() {
System.out.println("「子类」构造函数");
}
}
public static void main(String[] args) {
new Son();
}
}