Skip to main content

Wat is de methode overbelast?

Methode overbelasting is een functie in de meeste objectgeoriënteerde programmeertalen waarin twee of meer methoden dezelfde naam delen maar verschillende parameters hebben.In het bijzonder zijn het nummer, het gegevenstype en/of de volgorde van de parameters verschillend.Wanneer de code wordt samengesteld, wordt de juiste methode automatisch geselecteerd op basis van hoe deze wordt aangeroepen.Methoden staan ook bekend als functies in sommige programmeertalen, dus de overbelasting van methoden wordt soms wel functieoverbelasting genoemd.

Een eenvoudig voorbeeld van methode -overbelasting zou een methode zijn die het gebied van een vierkant berekent.Het kan worden gedefinieerd als getarea (vierkante s).Deze methode kan worden overbelast om bovendien het gebied van de cirkel te berekenen door de methode getarea (cirkel C) toe te voegen.

De primaire vereiste voor overbelasting van methoden is dat de methoden dezelfde naam delen.Hun methode handtekeningen mdash;De methodenaam, het aantal parameters en de parametergegevenstypen mdash;zou anders uniek moeten zijn.Op deze manier kan de compiler bepalen welke methode moet worden uitgevoerd.

Constructors, de methoden die worden gebruikt om objecten te instantiëren, worden vaak overbelast.Dit wordt gedaan om een object te initialiseren met niet-defaultwaarden.Een werknemersobject met twee velden (naam en geboortedatum of DOB) kan bijvoorbeeld de volgende overbelaste constructeurs hebben: werknemer (), werknemer (naam) en werknemer (naam, DOB).De eerste constructor maakt een werknemersobject met lege naam en DOB -velden.De tweede stelt het naamveld in, maar laat het DOB -veld leeg en de derde definieert zowel de naam als de DOB -velden.

Methode wordt het meest gedaan om meer dan één methode logisch te laten verschijnen als een enkele methode.In het voorbeeld van GetArea (), hoewel er fysiek twee methoden zijn, wordt de beller gepresenteerd met een enkele, logische getarea () -methode.Op deze manier kan getarea () worden uitgebreid om te werken aan andere vormen mdash;driehoeken, trapezoïden, enzovoort op mdash;terwijl ze zich nog steeds logisch presenteren als een enkele methode.

Methoden worden ook overbelast om achterwaartse compatibiliteit te behouden.Een methode die een complexe berekening uitvoert, kan een nieuwe vereiste krijgen om optioneel dezelfde berekening met een lichte wijziging uit te voeren.Een nieuwe parameter wordt toegevoegd aan de methode die zal bepalen hoe de berekening mdash moet worden uitgevoerd;De oude manier of de nieuwe manier.

Om te voorkomen dat alle gevallen worden gevonden waarin de methode wordt aangeroepen en de nieuwe parameter wordt toegevoegd, kan de methode worden overbelast.De nieuwe methode zal de oude handtekening hebben en door bestaande code worden opgeroepen.Het zal zelf geen logica bevatten en zal eenvoudig de gewijzigde methode oproepen en een standaard van "oude manier" voor de nieuwe parameter doorgeven.Nieuwe code zal de gewijzigde methode oproepen en de nieuwe parameter doorgeven met de juiste waarde, oude manier of nieuwe manier.

Methode overbelasting is een type polymorfisme, waarin dezelfde logische methode in de praktijk op meerdere manieren kan worden gebruikt.Methode -overbelasting is niet hetzelfde als de overschrijding van de methode.Methode die overdreven is waar de definitie van een methode in een ouderklasse wordt gewijzigd door een onderliggende klasse.In dit geval zullen beide methoden dezelfde handtekening hebben.