При перегрузке (overloading) метода или конструктора можно изменить:
Типы параметров: Последовательность и количество параметров могут быть одинаковыми, но хотя бы один тип параметра должен отличаться.
java
Количество параметров: Методы или конструкторы с одинаковым именем, но разным количеством параметров.
java
Порядок параметров (при разных типах): Если имеется несколько параметров, и их типы отличаются, изменение порядка этих параметров создает уникальную сигнатуру.
java
Что НЕЛЬЗЯ изменить при перегрузке:
Тип возвращаемого значения: Перегруженные методы могут иметь разный тип возвращаемого значения, но это не является достаточным условием для перегрузки. Тип возвращаемого значения игнорируется при определении сигнатуры метода.
java
Модификаторы доступа: Модификаторы доступа (public, private, protected, default) не влияют на возможность перегрузки.
Модификаторы non-access: Модификаторы static, final, abstract и другие не влияют на перегрузку.
Пример, иллюстрирующий, что изменение типа возвращаемого значения недостаточно для перегрузки:
java
Таким образом, при перегрузке ключевым моментом является уникальная сигнатура метода или конструктора, которая определяется комбинацией имени, количества и типов параметров, а также их порядка.