Перегрузка метода Java (с примерами)

В этой статье вы узнаете о перегрузке методов и о том, как этого добиться в Java с помощью примеров.

В Java два или несколько методов могут иметь одно и то же имя, если они различаются параметрами (разное количество параметров, разные типы параметров или и то, и другое). Эти методы называются перегруженными методами, а эта функция называется перегрузкой методов. Например:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Здесь func()метод перегружен. Эти методы имеют одинаковое имя, но принимают разные аргументы.

Примечание . Типы возвращаемых данных вышеупомянутых методов не совпадают. Это потому, что перегрузка метода не связана с возвращаемыми типами. Перегруженные методы могут иметь одинаковые или разные возвращаемые типы, но они должны отличаться параметрами.

Почему метод перегрузка?

Предположим, вам нужно выполнить сложение заданных чисел, но может быть любое количество аргументов (скажем, 2 или 3 аргумента для простоты).

Для выполнения задачи вы можете создать два метода sum2num(int, int)и sum3num(int, int, int)для двух и трех параметров соответственно. Однако другие программисты, а также вы в будущем можете запутаться, так как поведение обоих методов одинаково, но они различаются по названию.

Лучший способ выполнить эту задачу - перегрузить методы. И, в зависимости от переданного аргумента, вызывается один из перегруженных методов. Это помогает повысить читабельность программы.

Как выполнить перегрузку метода в Java?

Вот несколько способов выполнить перегрузку метода:

1. Перегрузка за счет изменения количества аргументов

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Выход :

 Аргументы: 1 Аргументы: 1 и 4

2. Путем изменения типа данных параметров

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Выход :

Получены целочисленные данные. Получил объект String.

Здесь оба перегруженных метода принимают один аргумент. Однако один принимает аргумент типа, intтогда как другой принимает Stringобъект.

Давайте посмотрим на реальный пример:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Когда вы запустите программу, вывод будет:

 500 89,993 550,00

Примечание . В Java вы также можете перегружать конструкторы аналогично методам.

Рекомендуемая литература: Перегрузка конструктора Java

Важные моменты

  • Два или более метода могут иметь одно и то же имя внутри одного класса, если они принимают разные аргументы. Эта функция известна как перегрузка метода.
  • Перегрузка метода достигается либо:
    • изменение количества аргументов.
    • или изменить тип данных аргументов.
  • Это не перегрузка метода, если мы изменяем только возвращаемый тип методов. Должны быть различия в количестве параметров.

Интересные статьи...