您的位置:首页 > 编程语言 > Java开发

java学习之对象的初始化过程

2015-05-12 12:58 531 查看
创建对象时,对象初始化过程:

1、类中数据成员的隐式初始化。(下图例子中num隐式初始化为0)

2、子类的构造函数进栈。

3、父类构造函数初始化。(因为子类构造函数第一行有隐式的super())

4、子类中成员变量显示初始化。(下图例子中num初始化为9)

5、构造代码块显示初始化。

class Fu
{
Fu()
{
System.out.println("Fu constructor run...");
show();
}
void show()
{
System.out.println("Fu show run");
}
}
class Zi extends Fu
{
int num = 9;
{
System.out.println("constructor code..." + num);
num = 10;
}
Zi()
{
System.out.println("zi constructor run..." + num);
}
void show()
{
System.out.println("Zi show run..." + num);
}
}
public class ClassTest
{
public static void main(String[] args)
{
new Zi();
}
}
/*运行输出
Fu constructor run...
Zi show run...0
constructor code...9
zi constructor run...10
*/


父类构造函数调用子类中的show(),是因为当前建立的是子类对象,this指针指向当前子类对象,

父类对象的show()方法被子类对象的show()方法覆盖了,所以现在子类对象中找show()方法,

如果没有才在父类对象中找show()方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  类对象初始化