A
class A {
int v1=1;
static int v2 = 2;
static {}
public A() {}
}
B
class B extends A {
int v3=3;
static int v4 = 4;
static {}
public B() {}
}
新建B的实例 new B()
l 第一次使用A、B类
1. 加载父类,为父类的静态变量分配内存
2. 加载子类,为子类的静态变量分配内存
3. 父类的静态变量赋值运算,和静态初始化块
4. 子类的静态变量赋值运算,和静态初始化块
l 再次使用A、B类
5. 创建父类对象,为父类的“实例变量”分配内存
6. 创建子类对象,为子类的“实例变量”分配内存
7. 父类“实例变量”的赋值运算
8. 父类的构造方法
9. 子类“实例变量”的赋值运算
10. 子类的构造方法