Skip to main content

Hvad er overbelastning af metode?

Metodeoverbelastning er en funktion i de fleste objektorienterede programmeringssprog, hvor to eller flere metoder deler samme navn, men har forskellige parametre.Specifikt er antallet, datatypen og/eller rækkefølge af parametrene forskellige.Når koden er samlet, vælges den korrekte metode automatisk baseret på, hvordan den kaldes.Metoder er også kendt som funktioner på nogle programmeringssprog, så overbelastning af metode kaldes undertiden overbelastning af funktion.

Et simpelt eksempel på overbelastning af metode ville være en metode, der beregner området for en firkant.Det kan defineres som getarea (firkantet S).Denne metode kunne overbelastes for yderligere at beregne cirklen om at tilføje metoden GetArea (cirkel C).

Det primære krav til overbelastning af metode er, at metoderne deler samme navn.Deres metodesignaturer mdash;Metodnavnet, antallet af parametre og parameterdatatyperne mdash;skal ellers være unik.På denne måde kan kompilatoren bestemme, hvilken metode der skal udføres.

Konstruktører, metoderne, der bruges til at instantiere objekter, er ofte overbelastede.Dette gøres for at initialisere et objekt med ikke-default-værdier.For eksempel kan et medarbejderobjekt med to felter (navn og fødselsdato eller DOB) have følgende overbelastede konstruktører: medarbejder (), medarbejder (navn) og medarbejder (navn, DOB).Den første konstruktør opretter et medarbejderobjekt med tomt navn og DOB -felter.Det andet indstiller feltet Navn, men forlader DOB -feltet tomt, og den tredje definerer både navnet og DOB -felterne.

Metodeoverbelastning udføres oftest for at få mere end en metode til at se logisk ud som en enkelt metode.I eksemplet getarea (), mens der er fysisk to metoder, præsenteres den, der ringer, med en enkelt, logisk getarea () -metode.På denne måde kan getarea () udvides til at arbejde på andre former mdash;trekanter, trapezoider osv. Mdash;mens han stadig præsenterer sig logisk som en enkelt metode.

Metoder er også overbelastet for at bevare bagudkompatibilitet.En metode, der foretager en kompleks beregning, kunne gives et nyt krav til eventuelt at udføre den samme beregning med en lille ændring.En ny parameter føjes til den metode, der bestemmer, hvordan man udfører beregningen og mdash;Den gamle måde eller den nye måde.

For at undgå at skulle finde alle tilfælde, hvor metoden kaldes og tilføjer den nye parameter, kan metoden overbelastes.Den nye metode har den gamle underskrift og kaldes af eksisterende kode.Det vil ikke indeholde nogen logik i sig selv og vil blot kalde den ændrede metode og videregive en standard af "gammel måde" for den nye parameter.Ny kode kalder den modificerede metode og passerer den nye parameter med den passende værdi, gamle måde eller nye måde.

Metodeoverbelastning er en type polymorfisme, hvor den samme logiske metode i praksis kan bruges på flere måder.Overbelastning af metode er ikke den samme som metode tilsidesættende.Metode, der tilsidesætter, er hvor definitionen af en metode i en forældreklasse ændres af en barneklasse.I dette tilfælde vil begge metoder have den samme signatur.