对象创建的过程
案例:
class A{
int v1 = 1;
static v2 = 2;
static{}
public A(){}
}
class B extends A{
int v3 = 1;
static v4 = 2;
static{}
public A(){}
}
//新建B实例
new B();
第一次用到A和B类
加载父类,为父类的静态变量分配内存
加载子类,为子类的静态变量分配内存
为父类静态变量复制和静态初始化块
为子类类静态变量复制和静态初始化块
创建对象:
新建父类对象,为父类实例变量分配内存
新建子类对象,为父类实例变量分配内存
父类实例变量的赋值运算
父类构造方法
子类实例变量的赋值运算
子类构造方法