public class JavaMain {
public static void main(String[] args) {
JavaA a = new JavaB();
a.m1(5);
a.m1(new Integer(5));
}
}
class JavaA{
public void m1(Integer i){
System.out.println(2);
}
}
class JavaB extends JavaA{
public void m1(int i){
System.out.println(1);
}
}
Выход: 2 2Autoboxing и перегрузки
По моему разумению, результат будет "1 2".
1) Когда я вызываю метод a.m1 (5) из основного метода. В соответствии с концепцией перегрузки метод класса JavaB должен выполняться. но это не будет.
Пожалуйста, помогите мне понять концепцию перегрузки + автобоксинга.
Выход 2,2, я проверил его –
«По моему мнению, выход будет« 1 2 ». Зачем? Что приводит вас к такому выводу? Подсказка: вы должны различать * перегрузку * и * переопределение *. Я подозреваю, что здесь проблема. –