Preklapanje imena funkcija
Preklapanje imena metoda (funkcija)
... = definisanje više metoda sa istim imenom unutar jedne klase
Preopterećene (preklapajuće – OVERLOADING) metode – metode u okviru iste klase koje imaju isti naziv, a različite parametre:
public string DajPrezimeIme() {return this.m_prezime + “ “ + this.m_ime;}
public string DajPrezimeIme(boolprvoPrezime) {return this.m_prezime + “ “ + this.m_ime;}
Tip može da preklapa (engl. overloads) svoje metode (tj. da ima više metoda istog imena), sve dok su tipovi parametara metode različiti. Recimo, sve sledeće metode mogu da postoje istovremeno u istom tipu:
void Foo (int x);
void Foo (double x);
void Foo (int x, float y);
void Foo (float x, int y);
Detaljnije:
Pod preopterećivanjem imena metoda (method name overloading) podrazumeva se definisanje više metoda sa istim imenom unutar jedne klase. Sve te metode moraju međusobno da se razlikuju po broju i/ili tipovima parametara, odnosno treba da imaju različite potpise.
Tip povratne vrednosti nije deo potpisa. Zbog toga nije dovoljno da se dve metode razlikuju samo po tipu povratne vrednosti.
Razlike u parametrima moraju da budu takve da prevodilac, na osnovu broja i tipova parametara koji se navedu prilikom pozivanja, može da jednoznačno odredi koju od istoimenih metoda da pozove.
Izbor koja od istoimenih metoda da se pozove naziva se razrešenje preopterećenih imena (overload resolution).