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赋值
浙公网安备 33010602011771号