Приведу пример, более понятный вам.
Представьте себе, что вы - секретарь в приемной комиссии университета. Или вахтер на вахте. Или писарь в штабе на фронте.
И у вас есть метод "ЗаписатьФИОчеловекаВжурналПосещений", который на входе принимает три параметра (фамилия, имя, отчество) и который берет эти части ФИО записывает в журнал посещений.
Пришел, к примеру, Пупкин Василий Иванович, вы его успешно записали. Потом пришел Иванов Иван Иванович. Он тоже был успешно записан в журнал посещений. Потом пришла Сидорова Анна Сидоровна, она тоже была успешно записана в журнал.
Все было нормально, пока к вам на вахту не пришел Силвестер Сталонне. Да, да, без отчества, просто фамилия и имя, отчества у Сталонне нет. Если вы попытаетесь использовать свой "стандартный" метод, который принимает три параметра, у вас замкнет в голове короткое замыкание и в программе получится какой-нибудь access violation at memory 0x12345678.
Потом представим, что к вам пришел Ремарк Эрих Мария. Нет, это не фамилия, имя, отчество, несмотря на то, что это три части полного имени, это фамилия, имя1 и имя2. У них так принято называть людей. Тут у вас будет тоже короткое замыкание в программе с последующим выпадением в синий экран смерти, если не использовать overloaded методы.
Потом чисто теоретически к вам пришел какой-нибудь Abū ʿAlī al-Ḥusayn ibn ʿAbd Allāh ibn al-Ḥasan ibn ʿAlī ibn Sīnā (знаменитый арабский врач), от такого имени ваш алогритм вообще треснул еще на этапе приема информации.
Так вот, overloaded-методы предназначены для того, чтобы вы, как записыватель ФИО в журнал посещений, могли спокойно записать любого человека, который чисто теоретически может появится на вашей вахте.
Без использования overloaded-методов вы можете записать только тех, у кого полное имя состоит только из Ф, И, Щ. А всякие китайцы, арабы, турки, жители Северного Кавказа у вас вызовут исключительную ситуацию и приведут к закрытию вахты или диссимиляции журнала посещений.
Java
Для чего вообще используется method overloading?
первое - это чтобы закидывать разные агрументы в один метод и он их по разному отрабатывал
второе - у наследников одного класса перегружен базовый метод по разному, и тогда можно переключаться между кусками кода переключая классы безотносительно основного кода (паттерн стратегия)
второе - у наследников одного класса перегружен базовый метод по разному, и тогда можно переключаться между кусками кода переключая классы безотносительно основного кода (паттерн стратегия)
чтобы 5 разных методов могли иметь одно и то же имя если у них разное количество аргументов. например конструкор без аргументов чтоб дефалтовые значения устанавливал и с 3 аргументами чтоб можно было дефалтовые значения менять.
Евгений Кириленко
то есть просто избежать нагромождения методов, и вместо этого дергать один и тот же с разными параметрами?
Похожие вопросы
- что используется в java для хранения информации
- Как работает такой цикл for? for (i=1;i>=n;i--) И для каких N он может использоваться?
- Throw throws где и как используется?
- Что такое MySQL и Redis и как поставить их на сервер в Майнкрафт, если это вообще возможно
- Хочу написать программу -калькулятор .Через какой язык мне нужно писать ?/И как вообще писать ?
- Подскажите, пожалуйста, нужен ли вообще диплом о высшем образовании программисту на JAVA?
- По каким книгам, сайтам, и вообще где обучаться программированию с нуля? (14 лет) английский знаю отлично
- Повторное использование кода - это вообще реально?
- вот эти коляски для новорожденных до какого возраста вообще используются?
- битовые карты: так ли я понял тему, для чего вообще используются?