class Fu
{
int num=9;
{
System.out.println("父构造代码块"+num);
}
void show()
{
System.out.println("父show方法");
}
Fu()
{
super();
//显示初始化》构造代码块》构造函数
System.out.println("父构造函数"+num);
num=10;
show();
}
}
class Zi extends Fu
{
int num=11;
{
System.out.println("子构造代码块"+num);
}
Zi()
{
super();
//显示初始化》构造代码块》构造函数
System.out.println("子构造函数"+num);
num=12;
}
void show()
{
System.out.println("子show方法"+num);
}
}
class ObjDemo
{
public static void main(String[] args)
{
new Zi();
}
/*
子 中定义 int num=11;
结果如下
父构造代码块9
父构造函数9
子show方法0
子构造代码块11
子构造函数11
*/
/*
子 中 不定义 int num=11;
结果如下
父构造代码块9
父构造函数9
子show方法10
子构造代码块10
子构造函数10
*/
}
问一下 子类 定义 int num=11;时 ,运行结果的第三行 “子show方法0” 中的“0”是什么时候被子类重新初始化为0的? |
|