«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Перегрузка метода

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

Опубликовано 8 ноября 2024 г.
Просматривать:645
  • Java допускает перегрузку методов, при которой два или более метода одного и того же класса могут иметь одно и то же имя.

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

  • Перегрузка метода — это способ реализации полиморфизма в Java.

  • Чтобы перегрузить метод, необходимо объявить разные его версии.

  • Компилятор автоматически выбирает правильный метод на основе параметров.

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

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

  • При вызове перегруженного метода выполняется версия с параметрами, соответствующими аргументам.

Sobrecarga de métodos

Sobrecarga de métodos

  • Метод ovlDemo() перегружен четыре раза с разными сигнатурами:

  • Первая версия: без параметров.

  • Вторая версия: с целочисленным параметром.

  • Третья версия: с двумя целочисленными параметрами.

  • Четвертая версия: с двумя двойными параметрами.

  • Первые две версии ovlDemo() возвращают void, а последние две возвращают значение.

  • Перегрузка метода не зависит от типа возвращаемого значения.

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

Sobrecarga de métodos

  • Разницы в типах возвращаемых значений недостаточно для перегрузки методов в Java.

  • В примере показано, что два метода с одинаковой сигнатурой, даже с разными типами возвращаемого значения, вызывают ошибку.

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

Sobrecarga de métodos

  • В примере показаны две версии метода f(): одна с параметром int, другая с параметром double.

  • Значения типов byte и short автоматически преобразуются в int, вызывая метод f(int).

  • Значения с плавающей запятой преобразуются в двойные путем вызова метода f(double).

  • Автоматические преобразования происходят, когда нет прямого соответствия между параметром и аргументом.

  • Добавление версии f() с байтовым параметром может изменить способ обработки значений.

Sobrecarga de métodos

  • В текущей версии, когда f() вызывается с байтовым аргументом, f(byte) вызывается напрямую, без автоматического преобразования в int.

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

  • В языках без поддержки перегрузки аналогичные методы для разных типов данных должны иметь разные имена (например, abs(), labs(), fabs() в C).

  • Java позволяет использовать одно и то же имя для методов с разными типами аргументов, например метод abs() класса Math, который перегружен для разных числовых типов.

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

  • Выбор правильной версии метода осуществляется компилятором на основе типа аргумента.

  • Хотя перегруженные методы могут выполнять разные действия, они должны быть связаны для обеспечения ясности и последовательности.

  • Избегайте использования перегруженных имен методов для несвязанных операций, так как это может сбить с толку смысл кода.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devsjavagirls/sobrecarga-de-metodos-28m3?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3