1
なぜこの場合、doAction(A a)
が選択されますか?javaの継承でこのメソッド呼び出しの解決方法を教えてください。
引数の種類に応じてメソッドの選択について読んでください。のdoAction(A)は、このような状況で選択されるのはなぜ
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());
}
}
実行時のタイプに基づいて選択する方法を尋ねていないので、実際にはそれが重複しているかどうかはわかりません。しかし答えはまだ関連しています... –