Перегруженные методы - это методы одного класса, которые имеют одно и то же имя, но принимают в качестве аргументов разные типы переменных. Например, класс может содержать два разных метода «добавления»: один, который принимает два двойных значения, «добавить (double a, double b)», и другой, который принимает два целочисленные значения, «add (int a, int b)». Компьютер автоматически решает, какой метод вызывать во время выполнения, на основе типов переменных, передаваемых в метод.
Гибкость
Перегруженные методы дают программистам возможность вызывать один и тот же метод для разных типов данных. Например, если вы работаете над математической программой, вы можете использовать перегрузку для создания нескольких классов "умножения", каждый из которых умножает разное количество аргументов: простейший "multiply (int a, int b)" умножает два целые числа; более сложный метод "multiply (double a, int b, int c)" умножает одно двойное на два целых числа - тогда вы можете вызовите "multiply" для любой комбинации переменных, для которой вы создали перегруженный метод, и получите правильный результат.
Видео дня
Конструкторы
Перегрузка также используется в конструкторах для создания новых объектов с разным объемом данных. Например, вы можете использовать перегрузку для создания трех разных конструкторов для объекта «Дом» с номером дома, названием улицы и цветовыми переменными. Простейший конструктор House () не принимает аргументов и создает дом с переменными по умолчанию или пустыми переменными. Более сложный конструктор «Дом (int houseNumber, String streetName)» создает дом с указанным номером дома и названием улицы, но цветом по умолчанию или пустым цветом. Самый сложный конструктор «Дом (int houseNumber, String streetName, String color)» создает дом со всей указанной информацией, не оставляя ничего по умолчанию. Затем вы можете создать домашний объект на основе имеющейся в настоящее время информации, оставив недоступную информацию пустой или по умолчанию.
Неоднозначные ссылки
Перегруженные методы должны использовать разные числа или типы аргументов, чтобы избежать двусмысленности. Если вы создаете два метода в одном классе с одинаковым именем и принимаете два целых числа в качестве аргументов, Компилятор Java не сможет различить их, даже если входные переменные имеют разные имена. Например, метод add (int a, int b) не может существовать в том же классе, что и метод add (int c, int d).
Типы возврата
Вы должны определить возвращаемый тип для каждого перегруженного метода. Методы могут иметь разные типы возвращаемых значений - например, «add (int a, int b)» может возвращать целое число, а «add (double a, double b)» возвращает двойное значение. Однако Java не может различать два разных метода на основе их возвращаемого типа. Следовательно, «int multiply (double a, double b)» не может существовать в том же классе, что и «double multiply (double a, double b)».