java代码问题,新手求解。

class A {
int i;

A() {
    add(1);
}

void add(int v) {
    i = i + v;
}

void print() {
    System.out.println(i);
}

}

class AA extends A {
AA() {
add(2);
}

void add(int v) {
    i = i + v * 2;
}

}

public class Test2 {

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    show(new AA());
}

static void show(A b) {
    b.add(8);
    b.print();
}

}
运行结果为22.
能详细解释一下show方法是什么意思吗?
谢谢大家的回答。

    主函数中有个show()方法,show()方法上面有个方法调用,show()方法中有两个字母但其实是一个参数类型--A类的成员b  即A b=new A();只是没有实例化即没有new A(),从而作为一个参数类型。

而上面的调用show()方法---show(new AA()) 代表传入了一个实例化对象进入show()方法中。它的作用是将对这个传入的实例化对象进行add(8)和print()操作**

静态方法,子类,父类的关系

show(A b) 方法需要一个A,而传入的是A的子类AA对象,因此会先调用A的构造函数,再调用AA的构造函数。

计算过程如下:
1、AA中的i为2 AA中的v为1。调用了A的构造函数。
2、AA中的i为6 AA中的v为2。调用了AA的构造函数。
3、AA中的i为22 AA中的v为8,i=i+v*2 ,也就是i = 6+8*2 = 22
4、输出结果:22

    主函数中有个show()方法,show()方法上面有个方法调用,show()方法中有两个字母但其实是一个参数类型--A类的成员b  即A b=new A();只是没有实例化即没有new A(),从而作为一个参数类型。

而上面的调用show()方法---show(new AA()) 代表传入了一个实例化对象进入show()方法中。它的作用是将对这个传入的实例化对象进行add(8)和print()操作**

java采用运行时绑定,将子类对象赋值给父类,调用的依然是子类的方法。

 class A {
    int i;
    A() {
        System.out.println("初始化A:");
        System.out.println(this);
        //调用父类add还是子类add,关键在于调用对象是父类还是子类,重点在于this是什么对象
        add(1);
        System.out.println("A:i----->" + i);
    }

    void add(int v) {
        System.out.println("调用A:add();");
        i = i + v;
    }

    void print() {
        System.out.println(i);
    }
    public String toString(){
        return "当前对象类型:A";
    }
}
class AA extends A {
    AA() {
        System.out.println("初始化AA:");
        add(2);
        System.out.println("AA:i----->" + i);
    }
    void add(int v) {
        System.out.println("调用AA:add();");
        i = i + v * 2;
    }
    public String toString(){
        return "当前对象类型:AA";
    }
}
public class TestFunction {
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        show(new AA());
    }

    static void show(A b) {
        b.add(8);
        b.print();
    }
}

你可以编译运行下上述代码,就可以看到执行顺序,其实重点在于this是谁