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());
}
}
我不確定它是否真的重複,因爲它不會詢問如何根據執行時類型進行選擇。答案仍然相關,但... –