黑马程序员技术交流社区

标题: 程序执行的顺序?哪个先加载,哪个后加载? [打印本页]

作者: 李东梁    时间: 2014-3-24 13:11
标题: 程序执行的顺序?哪个先加载,哪个后加载?
本帖最后由 李东梁 于 2014-3-25 10:47 编辑

        复习的时候看到了这个题目,还是不能清楚的把不同累的执行顺序分清楚,

想知道程序中每条程序加载,和执行的先后顺序,求大虾指点。。。

  1. class Base{
  2.         private int i = 2;
  3.         
  4.          Base(){
  5.                 System.out.println("base:"+this.i);  
  6.                 this.display();
  7.         }

  8.         public void display(){
  9.                 System.out.println("base display:"+this.i);
  10.         }
  11. }
  12. class Derived extends Base {
  13.          public int i = 22;

  14.          public        Derived(){
  15.                 super();
  16.                 i = 222;        
  17.          }
  18.          public void display(){
  19.                 System.out.println("derived display:"+i);
  20.          }
  21. }

  22. class TestI {
  23.         public static void main(String[] args){
  24.                 new Derived();
  25.         }
  26. }
复制代码



作者: awkflf11    时间: 2014-3-24 14:51


首先先执行  主函数的代码:



进入主函数以后,,,new对象,,开辟空间,,
执行class Derived,进入类Derived的构造函数,,但他有继承父类,,
   执行  System.out.println("base:"+this.i);  


结果是 i=2


然后再执行 this.display();

又调用子类的方法



System.out.println("derived display:"+i);
结果是0;









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