Skip to main content

Hva er overbelastning av metoden?

Metodeoverbelastning er en funksjon i de fleste objektorienterte programmeringsspråk der to eller flere metoder deler samme navn, men har forskjellige parametere.Spesifikt er antall, datatype og/eller rekkefølge på parametrene forskjellige.Når koden er samlet, blir riktig metode automatisk valgt ut fra hvordan den kalles.Metoder er også kjent som funksjoner i noen programmeringsspråk, så overbelastning av metode blir noen ganger referert til som funksjonsoverbelastning.

Et enkelt eksempel på overbelastning av metode vil være en metode som beregner området til en firkant.Det kan defineres som getArea (kvadrat s).Denne metoden kan overbelastes for å i tillegg beregne sirkelområdet ved å legge til metoden GetArea (sirkel C).

Det primære kravet for overbelastning av metode er at metodene har samme navn.Deres metode signaturer mdash;Metodenavnet, antall parametere og parameterdatatyper og mdash;skal ellers være unik.På denne måten kan kompilatoren bestemme hvilken metode som skal utføres.

Konstruktører, metodene som brukes for å instantisere objekter, som ofte er overbelastet.Dette gjøres for å initialisere et objekt med ikke-mangelverdier.For eksempel kan et ansattobjekt 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 oppretter et ansattobjekt med tomt navn og DOB -felt.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 å fungere med andre former og mdash;trekanter, trapesidzoider og så videre mdash;mens de fremdeles presenterer seg logisk som en enkelt metode.

Metoder er også overbelastet for å bevare bakoverkompatibiliteten.En metode som gjør en kompleks beregning, kan gis et nytt krav om å eventuelt utføre den samme beregningen med en liten endring.En ny parameter blir lagt til metoden som vil avgjøre hvordan du utfører beregningen og mdash;den gamle måten eller den nye måten.

For å unngå å måtte finne alle tilfeller der metoden kalles og legge til den nye parameteren, kan metoden overbelastes.Den nye metoden vil ha den gamle signaturen og bli kalt med eksisterende kode.Den vil ikke inneholde noen logikk i seg selv, og vil ganske enkelt kalle den modifiserte metoden og passere på en standard "gammel måte" for den nye parameteren.Ny kode vil kalle den modifiserte metoden og passere den nye parameteren med riktig verdi, gammel måte eller en 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 metode som overstyrer.Metodeoverstyring er der definisjonen av en metode i en foreldreklasse endres av en barneklasse.I dette tilfellet vil begge metodene ha samme signatur.