Перегрузка методов vararg

Метод, который принимает аргумент переменной длины, можно перегружать.

Типы его параметра vararg могут быть различными. Именно это имеет место в вариантах vaRest (int ...) и vaTest (boolean ...). Помните, что конструкция ... вынуждает компилятор обрабатывать параметр как массив указанного типа. Поэтому, подобно тому, как можно выполнять перегрузку методов, используя различные типы параметров массива, можно выполнять перегрузку методов vararg, используя различные типы аргументов переменной длины. В этом случае система Java использует различие в типах для определения нужного варианта перегруженного метода.

Второй способ перегрузки метода vararg — добавление обычного параметра. Именно это было сделано для vaTest (String, int ...). В данном случае для определения нужного метода система Java использует и количество аргументов, и их тип.

На заметку! Метод, поддерживающий varargs, может быть перегружен также методом, который не поддерживает эту функциональную возможность. Например, в приведенной ранее программе метод vaTest () может быть перегружен методом vaTest (int х). Эта специализированная версия вызывается только при Наличии аргумента int. В случае передаче методу двух и более аргументов int программа будет использовать varargs-версию метода vaTest (int. . .v).