Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
public class Main {
static void f(int x) { System.out.print("int"); }
static void f(double x) { System.out.print("double"); }
public static void main(String[] args) {
f(5);
f(5.0);
f('a');
}
}intdoubleint
- Ждать
intdoubledouble: безf(char)компилятор берёт ближайшее расширение, аcharрасширяется доintраньше, чем доdouble. - Ждать ошибку компиляции: нет точного совпадения — не ошибка, если расширение аргумента находит подходящую версию.
- Какая версия вызовется для
f(5L)и почему? - Почему два метода не могут отличаться только типом результата?