java运行过程题

package oopd;

public class Demo4 {

    public static void main(String[] args) {
        new Sub();//(1)
    }}
class Super{
    int a=5;//(2)
    public Super() {//(3)
        this.test();//重写方法的调用(4)
    }
    public void test() {//(5)
        System.out.println("Super:"+this.a);//(6)
    }
}
class Sub extends Super{
    int a=6;//(7)
    public Sub() {//(8)
        super();//(9)
    }
    public void test() {//(10)
        System.out.println("Sub:"+this.a);//(11)
    }
}

执行过程1 8 9 3 4 10 11 10 4 3 8 7   输出结果:Sub:0

1先运行main方法

2再运行Sub

3默认执行父类

4执行父类Super

5重写父类test

6执行子类test

7输出 Sub:0  (在执行过程中没有执行声明赋值int a)

8告知test已经输出完成

9告知父类test执行完成

10告知子类Sub执行完成

11Sub构造执行int a赋值

posted on 2019-07-11 20:13  Jeydon  阅读(200)  评论(0)    收藏  举报

导航