一个困惑我好久的问题

  下面代码:

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。

你可能感兴趣的:(问题)