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

Опубликовано: 11 Января, 2023

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

Перегрузка метода также известна как Полиморфизм времени компиляции , статический полиморфизм или раннее связывание в Яве. При перегрузке метода по сравнению с родительским аргументом дочерний аргумент получит наивысший приоритет.

Выход :

30
60
31.0

Различные способы перегрузки методов в Java

  • Изменение количества параметров.
  • Изменение типов данных аргументов.
  • Изменение порядка параметров методов

1. Изменение количества параметров

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

Выход:

Product of the two integer value :2
Product of the three integer value :6

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

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

Выход:

Product of the three integer value :6
Product of the three double value :6.0

3. Изменение порядка параметров методов

Перегрузку метода также можно реализовать путем перестановки параметров двух или более перегруженных методов. Например, если параметры метода 1 — (String name, int roll_no), а другого метода — (int roll_no, String name), но оба имеют одинаковое имя, то эти 2 метода считаются перегруженными с разными последовательностями параметров. .

Выход:

Name :Spyd3r Roll-No :1
Roll-No :2 Name :Kamlesh

Что делать, если точный прототип не соответствует аргументам?

В зависимости от приоритета компилятор выполняет следующие действия:

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

Давайте возьмем пример, чтобы прояснить концепцию:

Можем ли мы перегрузить статические методы?

Ответ: « Да ». У нас может быть два или более статических метода с одинаковыми именами, но разными входными параметрами. Например, рассмотрим следующую программу Java. Чтобы узнать больше об этом, обратитесь к статье — Можем ли мы перегрузить или переопределить статические методы в java?

Можем ли мы перегрузить методы, которые отличаются только статическими ключевыми словами?

Мы не можем перегрузить два метода в Java, если они отличаются только ключевым словом static (количество параметров и типы параметров совпадают). См., например, следующую программу Java. Подробнее см. здесь.

Можем ли мы перегрузить main() в Java?

Как и другие статические методы, мы можем перегрузить main() в Java.

Выход :

Hi Geek (from main)
Hi, Geek
Hi, Dear Geek, My Geek

Поддерживает ли Java перегрузку операторов?

В отличие от C++, Java не поддерживает пользовательские перегруженные операторы. Внутри Java перегружает операторы, например + перегружается для конкатенации.

Можем ли мы перегрузить методы для возвращаемого типа?

Мы не можем перегрузить по возвращаемому типу. Это поведение аналогично C++. Подробнее см. здесь.

Ошибка:

./Main.java:8: error: method foo() is already defined in class Main

public char foo() { return ‘a’; }

           ^

1 error

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

Выход:

10
a

В чем разница между перегрузкой и переопределением?

Перегрузки примерно одной и той же функции имеют разные сигнатуры. Переопределение — это одна и та же функция, одна и та же сигнатура, но разные классы, связанные через наследование.

Перегрузка — это пример полиморфизма времени компиляции, а переопределение — пример полиморфизма времени выполнения.

Преимущества перегрузки метода

  • Перегрузка методов улучшает удобочитаемость и возможность повторного использования программы.
  • Перегрузка методов снижает сложность программы.
  • Используя перегрузку методов, программисты могут эффективно и результативно выполнять задачу.
  • Используя перегрузку методов, можно получить доступ к методам, выполняющим связанные функции с немного другими аргументами и типами.
  • Объекты класса также можно инициализировать различными способами с помощью конструкторов.

Статьи по Теме:

  • Различные способы перегрузки методов в Java
  • Перегрузка метода и ошибка Null в Java
  • Можем ли мы перегрузить или переопределить статические методы в java?

Эта статья предоставлена Шубхамом Агравалом . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.