下面代码:
package com.lk.C; public class Test5 { public static void main(String[] args) { go(new MyBase()); } static void go(Base b){ b.add(8); } } class Base{ int i; Base(){ add(1); System.out.println(i); } void add(int v){ i = i+v; System.out.println(i); } void print(){ System.out.println(i); } } class MyBase extends Base{ MyBase(){ add(2); } void add(int v){ i += v*2; System.out.println(i); } }
2 2 6 22
Java新手一枚,望有人解答:
我调试了一下,走的顺序:当走父类的构造函数内的add(1)方法时,为什么不是调用父类的add()方法,而调用了子类的add()方法?因此第一个输出是2。