Pārslogotas metodes ir metodes vienā klasē, kurām ir vienāds nosaukums, bet kā argumenti tiek pieņemti dažādi mainīgo veidi. Piemēram, klasē var būt divas dažādas "pievienošanas" metodes: viena, kas pieņem divas dubultās vērtības, "add (dubultā a, dubultā b)" un viena, kas pieņem divas veselas vērtības, "add (int a, int b)." Dators izpildes laikā automātiski izlemj, kuru metodi izsaukt, pamatojoties uz mainīgo veidiem, kas tiek nodoti metodi.
Elastība
Pārslogotas metodes programmētājiem dod iespēju izsaukt līdzīgu metodi dažāda veida datiem. Piemēram, ja strādājat ar matemātikas programmu, varat izmantot pārslodzi, lai izveidotu vairākas "reizināšanas" klases, katrs no tiem reizina atšķirīgu argumenta veidu skaitu: vienkāršākais "reizināt (int a, int b)" reizina divus veseli skaitļi; sarežģītākā metode "reizināt (dubultā a, int b, int c)" reizina vienu dubulto ar diviem veseliem skaitļiem — tad jūs varētu izsauciet "reizināt" jebkurai mainīgo kombinācijai, kurai izveidojāt pārslogotu metodi, un saņemiet pareizo rezultātu.
Dienas video
Konstruktori
Pārslodze tiek izmantota arī konstruktoros, lai izveidotu jaunus objektus, ņemot vērā dažādu datu apjomu. Piemēram, varat izmantot pārslodzi, lai izveidotu trīs dažādus konstruktorus objektam "Māja" ar mājas numuru, ielas nosaukumu un krāsu mainīgajiem. Vienkāršākais konstruktors "House()" neizmanto argumentus un izveido māju ar noklusējuma vai tukšiem mainīgajiem. Sarežģītāks konstruktors "House (int houseNumber, String streetName)" izveido māju ar norādīto mājas numuru un ielas nosaukumu, bet noklusējuma vai tukšu krāsu. Sarežģītākais konstruktors "Māja (int houseNumber, String streetName, String color)" izveido māju ar visu norādīto informāciju, neatstājot neko kā noklusējuma. Pēc tam varat izveidot mājas objektu, pamatojoties uz pašlaik pieejamo informāciju, atstājot nepieejamo informāciju tukšu vai pēc noklusējuma.
Neviennozīmīgas atsauces
Pārslogotām metodēm ir jāizmanto dažādi argumentu skaitļi vai veidi, lai izvairītos no neskaidrībām. Ja vienā klasē izveidojat divas metodes, kurām ir vienāds nosaukums un kā argumentus pieņemat divus veselus skaitļus, Java kompilators nespēs atšķirt abus, pat ja ievades mainīgajiem ir dažādi nosaukumi. Piemēram, metode "add (int a, int b)" nevar pastāvēt tajā pašā klasē kā metode "add (int c, int d)."
Atgriešanas veidi
Katrai pārslogotajai metodei ir jādefinē atgriešanas veids. Metodēm var būt dažādi atgriešanas veidi, piemēram, "pievienot (int a, int b)" var atgriezt veselu skaitli, bet "add (double a, double b)" atgriež dubultu. Tomēr Java nevar atšķirt divas dažādas metodes, pamatojoties uz to atgriešanas veidu. Tāpēc "int reizināt (dubultā a, dubultā b)" nevar pastāvēt tajā pašā klasē kā "dubultreizināt (dubultā a, dubultā b)."