java对象的初始化过程(视频学习)
其中包含构造代码块,子父类。
- 代码
class Fu{
int num=9;
{
System.out.println("父类构造代码块"+num);
}//构造代码块
Fu()
{ super();
//显示初始化
//构造代码块的初始化
show();
}
void show()
{
System.out.println("父类的show()函数");
}
}
class Zi extends Fu{
int num=8;
{
System.out.println("子类构造代码块"+num);
}//子类构造代码块
Zi()
{
super();
//显示初始化
//构造代码块的初始化
System.out.println("子类的构造函数的初始化"+num);
}
void show()
{
System.out.println("子类的show()函数"+num);
}
}
class Test
{
public static void main(String[] args)
{
Zi z=new Zi();
}
}
-
代码结果
父类构造代码块9
子类的show()函数0
子类构造代码块8
子类的构造函数的初始化8 -
结果分析:
首先new一个新对象的之后,对其中的num进行默认初始化值为0;然后再进入构造函数
在构造函数中
Zi()
{
super();//隐性
//隐性进行成员变量的显示初始化
//隐性进行构造代码块的初始化
System.out.println("子类的构造函数"+num);
}
依次进行父类的构造函数调用,成员变量的显示初始化,构造代码块的初始化。最后才进行子类构造函数的初始化。