Перегрузка методов в Java
Перегрузка методов позволяет различным методам иметь одно и то же имя, но разные сигнатуры, где сигнатура может отличаться количеством входных параметров или типом входных параметров, или сочетанием того и другого.
Перегрузка метода также известна как Полиморфизм времени компиляции , статический полиморфизм или раннее связывание в Яве. При перегрузке метода по сравнению с родительским аргументом дочерний аргумент получит наивысший приоритет.
Выход :
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, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.