Да, статический метод Java можно перегрузить, объявив методы с одним именем и разными списками параметров. Возвращаемого типа для перегрузки недостаточно.
А перегрузить статический метод можно?
Да, статический метод Java можно перегрузить, объявив методы с одним именем и разными списками параметров. Возвращаемого типа для перегрузки недостаточно.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да, статический метод Java можно перегрузить, объявив методы с одним именем и разными списками параметров. Возвращаемого типа для перегрузки недостаточно.
Например:
static int sum(int a, int b) { return a + b; }
static long sum(long a, long b) { return a + b; }
Выбор перегрузки выполняется по правилам типов аргументов при компиляции. Это не переопределение: статический метод в подклассе с той же сигнатурой скрывает метод родителя, а не участвует в обычном динамическом dispatch экземплярных методов. Слишком похожие перегрузки с boxing и varargs могут сделать API неоднозначным.