黑马程序员技术交流社区

标题: 这个到底是怎么运行的啊 求大神解答啊 !!! [打印本页]

作者: 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构造函数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2