new Zi ( ) ;
1.加载子类和父类到内存中
2.定义变量num;给变量num赋初始值,比如int的是0,string类型的是null等
3.调用子类构造器Zi(),子类构造第一个操作调用父类构造器(默认的super语句)
4.调用父类构造器Fu()
5.父类构造器中调用show()方法,子类重写了父类的方法,会调用子类的
6. 给变量num赋值9;
package com.qa.danli;
public class Fu {
int num=10;
Fu(){
//super(); 继承object类
show();
}
{
System.out.println("FU constructor code ..."+num);
}
//子类会覆盖。。。运行子类的
public void show(){
System.out.println("hehehe");
}
}
package com.qa.danli;
public class Zi extends Fu{
int num=9;
//在没有执行构造器时定义的变量为初始值,只有执行构造器才会赋值
Zi(){
//super();
//显示初始化
//构造代码块初始化
System.out.println("zi constructor ...."+num);
}
{
System.out.println("ZI constructor code ..."+num);
}
public void show() {
System.out.println("zi show... "+num);
}
public static void main(String[] args) {
new Zi();
}
}