黑马程序员技术交流社区
标题:
程序执行的顺序?哪个先加载,哪个后加载?
[打印本页]
作者:
李东梁
时间:
2014-3-24 13:11
标题:
程序执行的顺序?哪个先加载,哪个后加载?
本帖最后由 李东梁 于 2014-3-25 10:47 编辑
复习的时候看到了这个题目,还是不能清楚的把不同累的执行顺序分清楚,
想知道程序中每条程序加载,和执行的先后顺序,求大虾指点。。。
class Base{
private int i = 2;
Base(){
System.out.println("base:"+this.i);
this.display();
}
public void display(){
System.out.println("base display:"+this.i);
}
}
class Derived extends Base {
public int i = 22;
public Derived(){
super();
i = 222;
}
public void display(){
System.out.println("derived display:"+i);
}
}
class TestI {
public static void main(String[] args){
new Derived();
}
}
复制代码
作者:
awkflf11
时间:
2014-3-24 14:51
首先先执行 主函数的代码:
public static void main(String[] args){
new Derived();
}
进入主函数以后,,,new对象,,开辟空间,,
执行
class Derived,进入类Derived的构造函数,,但他有继承父类,,
public Derived(){
super();
i = 222;
}
所以还得找父类的构造函数:
Base(){
System.out.println("base:"+this.i);
this.display();
}
执行 System.out.println("base:"+this.i);
结果是 i=2
然后再执行
this.display();
又调用子类的方法
public void display(){
System.out.println("derived display:"+i);
}
System.out.println("derived display:"+i);
结果是0;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2