Saturday, September 26, 2020 18:02

Cuprins >> Funcții > Supraîncărcarea metodelor și a funcțiilor (overloading)

Supraîncărcarea metodelor și a funcțiilor (overloading)

Sunt momente când avem funcții sau metode care realizează practic același lucru, dar folosesc diferite tipuri de parametri. Cu alte cuvinte, există cazuri când avem metode cu același nume, dar cu semnături diferite. Ce înseamnă asta? Înseamnă că putem avea câteva metode cu același nume, dar cu alt tip de parametri, aranjament diferit de parametri, sau un număr diferit de parametri. Numim aceaste variații suprasarcini sau supraîncărcări ale metodei/funcției (overloading).

De exemplu, să presupunem că vrem să avem niște funcții care să afișeze la consolă diferite tipuri: șiruri de caractere, numere întregi, float, orice. Putem face astfel:

Codul de mai sus funcționează perfect, nici un dubiu. Cu toate acestea, folosind supraîncărcarea metodelor, putem realiza același lucru astfel:

Puteți observa că avem trei metode cu același nume, Afiseaza(). Cum este posibil? Nu ar trebui să se plângă compilatorul că existentă deja o metodă cu același nume? Ei bine, nu, nu în acest caz, deoarece semnăturile metodelor noastre sunt diferite, adică avem diferite tipuri de parametri declarați în fiecare metodă.

Când numim metoda noastră Afiseaza() cu diferiți parametri – int, string, etc, compilatorul detectează automat tipul utilizat ca parametru în apel, și selectează supraîncarcarea corespunzătoare a metodei noastre.

Imaginea următoare prezintă supraîncărcarea a 8-a a metodei WriteLine(), ce scrie un număr întreg la consolă. Metoda WriteLine() are 19 suprasarcini (în engleză, overloads).

overloading

Comments

comments

Tags: , , , ,

Leave a Reply



Do NOT follow this link or you will be banned from the site!