标题: 这个到底是怎么运行的啊 求大神解答啊 !!! [打印本页] 作者: cnxaidp0213 时间: 2016-5-2 21:58 标题: 这个到底是怎么运行的啊 求大神解答啊 !!! class Demo_2 {
public static void main(String[] args){
new Zer();
}
}
class Fu {
public Fu(){
System.out.println("Fu构造函数");
}
}
class Zi extends Fu {
private Fu fu= new Fu();
public Zi(){
System.out.println("Zi构造函数");
}
}
class Zer extends Zi {
private Zi zi= new Zi();
public Zer(){
System.out.println("Zer构造函数");
}
}作者: 小K哥 时间: 2016-5-3 12:00
首先运行Zer(),但是Zer继承了Zi而Zi又继承了Fu,所以Fu()首先加载,输出"Fu构造函数",然后到Zi,而Zi第一条语句是Fu fu=new Fu(),所以又输出一次"Fu构造函数",然后在输出"Zi构造函数".然后到Zer。分析和上面一样。
最后输出的是:Fu构造函数、Fu构造函数、Zi构造函数、Fu构造函数、Fu构造函数、Zi构造函数、Zer构造函数