1
为什么doAction(A a)
会在这种情况下被选中?这是如何调用java中继承的方法解决的?
您能否根据参数类型建议一些关于方法选择的文章?
class A { }
class B extends A { }
class D {
void start(A a){
doAction(a);
}
void doAction(A a) {
System.out.println("A action");
}
void doAction(B b) {
System.out.println("B action");
}
}
public class Test {
public static void main(String[] args) {
new D().start(new B());
}
}
我不确定它是否真的重复,因为它不会询问如何根据执行时类型进行选择。答案仍然相关,但... –