父子类初始化时,子类的成员变量需要等父类初始化完后再进行本类初始化赋值。

package day02;

public class Person {


public static void main(String[] args) {
Test1 s = new Test1();
}
}
class Test {
Test(){
//构造函数执行,调用show,因为new对象是new的子类Test1的,所以调用子类的show方法,输出:子类0
show();
}
void show(){
System.out.println("父类");
}

}
class Test1 extends Test{
int x =5;
Test1(){
//此处会在x最开始默认初始化后直接调用父类的构造函数
super();
//上班父类初始化完后,再初始化本类,x=5;然后执行 show方法
show();
}
void show(){
System.out.println("子类"+x);
}

}

执行结果:

子类0
子类5

猜你喜欢

转载自www.cnblogs.com/liyunchuan/p/10652557.html
今日推荐