你的位置:首页 > Java教程

[Java教程]一个困惑我好久的问题


  下面代码:

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);  }}

22622

  Java新手一枚,望有人解答:

  我调试了一下,走的顺序:当走父类的构造函数内的add(1)方法时,为什么不是调用父类的add()方法,而调用了子类的add()方法?因此第一个输出是2。