Max*_*ler 3 java jvm overloading
对于以下代码,为什么要打印A,B?我希望它能打印B,B.此外,JVM执行的方法调用是动态还是静态评估的?
public class Main {
class A {
}
class B extends A {
}
public void call(A a) {
System.out.println("I'm A");
}
public void call(B a) {
System.out.println("I'm B");
}
public static void main(String[] args) {
Main m = new Main();
m.runTest();
}
void runTest() {
A a = new B();
B b = new B();
call(a);
call(b);
}
}
Run Code Online (Sandbox Code Playgroud)