Skip to main content

Wat is de methode voordragen?

Methode die overschrijven wordt gebruikt in objectgeoriënteerde programmering binnen een overervinghiërarchie, en het treedt op wanneer een methode gedefinieerd in een superklasse opnieuw wordt gedefinieerd in een subklasse.Gewoonlijk doet de subklasmethode iets anders dan de superclass -methode of breidt het uit op een mogelijkheden van de superclass, maar dit hoeft niet het geval te zijn.Methode -overdreven vindt plaats wanneer een superclass -methode opnieuw wordt gedefinieerd in een subklasse, ongeacht de inhoud van de opnieuw gedefinieerde methode.De handtekeningen van de opnieuw gedefinieerde methode moeten exact hetzelfde zijn.

Een klasse A kan bijvoorbeeld een methode bevatten die Dosomething wordt genoemd, en deze methode heeft geen invoerparameters.Bovendien kunnen klassen B en C subklassen zijn van klasse A. Klasse B kunnen een methode bevatten die Dosomething wordt genoemd, die geen invoerparameters nodig heeft, en klasse C kan een methode bevatten die een nummer als een invoerparameter nodig heeft.In dit voorbeeld zou alleen Klasse B methode overschrijden, omdat de methode de handtekening van de Dosomething dezelfde methode heeft als zijn superclass, klasse A. De methode Dosomething in klasse C, aan de andere kant, toont het overbelasting van de methode omdat het een volledig nieuwe methode creëert.

virtuele erfenis in C ++ is een ander voorbeeld van methode die overschrijdt.Virtuele methoden in superclasses kunnen al dan niet worden geïmplementeerd, maar elke definitie van subklasse daarvan is een exemplaar van methode die overschrijdt.Wanneer een methode in een subklasse wordt opgeheven, wordt de methode van de superklasse niet opgeroepen tenzij deze expliciet wordt opgeroepen.Er wordt vaak gezegd dat deze specifieke manier om een overschreven methode aan te roepen de implementatie van de superclass verbergen.

Hoewel het overschrijven van de methode zeer flexibel is, kunnen niet alle methoden worden overschreven, en er zijn momenten waarop deze stijfheid de voorkeur kan hebben.In zowel Java als C ++ kunnen specifieke trefwoorden worden toegepast in methodesignaturen om te voorkomen dat een methode in een subklasse wordt opgeheven.Om dit te doen, gebruikt Java het uiteindelijke trefwoord en gebruikt C ++ het CONST -trefwoord.Het voorkomen van methode die overschrijven kan gunstig zijn als een bepaalde functie altijd ongewijzigd moet zijn in een overervingstructuur.

In het algemeen hoeven eenvoudige methoden die kleine stukjes gegevens krijgen niet te negeren te worden.Gevallen die de meeste profiteren van het overschrijven zijn wanneer een subklasse ernaar streeft om functionaliteit toe te voegen aan een superclass -methode zonder een geheel nieuwe methode te maken om dit te doen.Ongewone gevallen waarin een methode volledig moet worden herschikt voor een specifiek type object, kunnen ook profiteren van deze techniek.Wanneer een methode wordt opgeheven, is het belangrijk dat de programmeur zowel de superclass- als de subklasmethoden adequaat commentaar geeft.Idealiter zouden deze opmerkingen moeten verduidelijken wat elke variant van de methode doet, evenals hoe en waarom ze verschillen.