Hva er metodeoverbelastning?

Overbelastning av metoder er en funksjon i de fleste objektorienterte programmeringsspråk der to eller flere metoder har samme navn, men har forskjellige parametere. Spesifikt er antallet, datatypen og / eller rekkefølgen på parameterne forskjellige. Når koden er satt sammen, blir riktig metode automatisk valgt basert på hvordan den heter. Metoder er også kjent som funksjoner på noen programmeringsspråk, så metodeoverbelastning blir noen ganger referert til som funksjon av overbelastning.

Et enkelt eksempel på overbelastning av metoden vil være en metode som beregner arealet til et kvadrat. Det kan defineres som getArea (Square s). Denne metoden kan bli overbelastet for i tillegg å beregne sirkelsarealet ved å legge til metoden getArea (Circle c).

Det viktigste kravet for overbelastning av metoder er at metodene har samme navn. Metodesignaturene deres - metodenavnet, antall parametere og parameterdatatypene - skal ellers være unike. På denne måten kan kompilatoren bestemme hvilken metode som skal utføres.

Konstruktører, metodene som brukes for å instantisere gjenstander, blir ofte overbelastet. Dette gjøres for å initialisere et objekt med ikke-standardverdier. For eksempel kan et ansattes objekt med to felt (navn og fødselsdato eller dob) ha følgende overbelastede konstruktører: Ansatt (), Ansatt (navn) og Ansatt (navn, dob). Den første konstruktøren lager et ansatttsobjekt med blanke navn og dobbelfelt. Det andre angir navnefeltet, men lar dob-feltet stå tomt, og det tredje definerer både navn- og dob-felt.

Overbelastning av metoden gjøres ofte for å få mer enn én metode til å fremstå logisk som en enkelt metode. I getArea () -eksemplet, mens det fysisk er to metoder, blir den som ringer presentert en enkelt, logisk getArea () -metode. På denne måten kan getArea () utvides til å arbeide med andre former - trekanter, trapezoider og så videre - mens de fremdeles presenterer seg logisk som en enkelt metode.

Metoder er også overbelastet for å bevare kompatibiliteten bakover. En metode som gjør en kompleks beregning kan gis et nytt krav for valgfritt å utføre den samme beregningen med en liten endring. En ny parameter er lagt til metoden som vil bestemme hvordan du skal utføre beregningen - den gamle måten eller den nye måten.

For å unngå å måtte finne alle tilfeller der metoden heter og legge til den nye parameteren, kan metoden bli overbelastet. Den nye metoden har den gamle signaturen og blir kalt av eksisterende kode. Den vil ikke inneholde noen logikk i seg selv, og vil ganske enkelt kalle den endrede metoden og passere som standard på "gammel måte" for den nye parameteren. Ny kode vil kalle den endrede metoden og passere den nye parameteren med riktig verdi, gammel måte eller ny måte.

Metodeoverbelastning er en type polymorfisme, der den samme logiske metoden i praksis kan brukes på flere måter. Overbelastning av metode er ikke det samme som overstyring av metode. Overordnet metode er der definisjonen av en metode i en foreldreklasse endres av en barneklasse. I dette tilfellet vil begge metodene ha samme signatur.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?