class A {
static int i = 1;
static {
System.out.println("A 静态变量初始化:i = " + i);
System.out.println("A 静态代码块");
}
private int j = 3;
{
System.out.println("A 成员变量初始化:j = " + j);
System.out.println("A 构造代码块");
}
A() {
System.out.println("A 构造函数");
}
}
class B extends A {
static int a = 2;
static {
System.out.println("B 静态变量初始化:a = " + a);
System.out.println("B 静态代码块");
}
private int b = 4;
{
System.out.println("B 成员变量初始化:b = " + b);
System.out.println("B 构造代码块");
}
B() {
System.out.println("B 构造函数");
}
}
public class Test {
static B b = new B();
public static void main(String[] args) {
System.out.println("main start");
}
}/* output:
A 静态变量初始化:i = 1
A 静态代码块
B 静态变量初始化:a = 2
B 静态代码块
A 成员变量初始化:j = 3
A 构造代码块
A 构造函数
B 成员变量初始化:b = 4
B 构造代码块
B 构造函数
main start
*///:~
java 程序流程:类的加载、初始化、构造函数
最新推荐文章于 2021-09-04 17:14:48 发布