Verschil Tussen Overschrijven En Overbelasting

Verschil Tussen Overschrijven En Overbelasting
Verschil Tussen Overschrijven En Overbelasting

Video: Verschil Tussen Overschrijven En Overbelasting

Video: Verschil Tussen Overschrijven En Overbelasting
Video: overbelasting en kortsluiting 2024, December
Anonim

Overschrijven versus overbelasting

De methode Overriding en de methode Overloading zijn twee concepten / technieken / features die in sommige programmeertalen voorkomen. Met beide concepten kan de programmeur verschillende implementaties bieden voor methoden met dezelfde naam. Methode overschrijven stelt de programmeur in staat om een alternatieve implementatie te bieden binnen een subklasse voor een methode die al is gedefinieerd in zijn superklasse. Door overbelasting van methoden kan de programmeur verschillende implementaties bieden voor meerdere methoden met dezelfde naam (binnen dezelfde klasse).

Wat is overschrijven?

Zoals hierboven vermeld, kan een klasse een superklasse of een bovenliggende klasse uitbreiden in objectgeoriënteerde programmeertalen. Een onderliggende klasse kan zijn eigen methoden hebben of kan optioneel zijn eigen implementaties hebben voor methoden die al zijn gedefinieerd in de bovenliggende klasse (of een van de grote bovenliggende klassen). Dus als het laatste gebeurt, wordt het methode overschrijven genoemd. Met andere woorden, als de kindklasse een implementatie biedt voor een methode met dezelfde handtekening en hetzelfde retourtype als een methode die al is gedefinieerd in een van de bovenliggende klassen, wordt gezegd dat die methode wordt overschreven (vervangen) door de implementatie van de kindklasse. Dus als er een overschreven methode in een klasse is, zal het runtime-systeem moeten beslissen welke methode-implementatie wordt gebruikt. Dit probleem wordt opgelost door te kijken naar het exacte type object dat wordt gebruikt om het op te roepen. Als een object van de bovenliggende klasse wordt gebruikt om de overschreven methode aan te roepen, wordt de implementatie in de bovenliggende klasse gebruikt. Evenzo, als het een object is van de onderliggende klasse die wordt gebruikt, wordt de implementatie van de onderliggende klasse gebruikt. Moderne programmeertalen zoals Java, Eifell, C ++ en Python maken overschrijven van methoden mogelijk.

Wat is overbelasting?

Overbelasting van methoden is een functie die door sommige programmeertalen wordt geboden om meer dan één methode met dezelfde naam, maar met verschillende invoer- en uitvoertypes te creëren. In moderne programmeertalen zoals Java, C #, C ++ en VB. NET is deze functie beschikbaar. U kunt een methode overbelasten door een andere methode te maken met dezelfde naam maar met een andere methodehandtekening of een ander retourneringstype (of beide). Als u bijvoorbeeld methode1 (type1 t1) en methode1 (type2 t2) in dezelfde klasse hebt, zijn ze overbelast. Vervolgens moet het systeem beslissen welke wordt uitgevoerd wanneer het wordt aangeroepen. Dit onderscheid wordt gemaakt door te kijken naar het type parameter (s) dat is doorgegeven aan de methode. Als het argument van type1 is, wordt de eerste implementatie aangeroepen, terwijl als het van type2 is, de tweede implementatie wordt aangeroepen.

Wat is het verschil tussen overschrijven en overbelasten?

Hoewel methode-overschrijving en methode-overbelasting worden gebruikt om een methode met verschillende implementaties te bieden, zijn er belangrijke verschillen tussen deze twee concepten / technieken. Allereerst blijven onderwerpen van methode-overschrijving altijd binnen verschillende klassen, terwijl onderwerpen van methode-overbelasting binnen dezelfde klasse blijven. Dat betekent dat overschrijven alleen mogelijk is in objectgeoriënteerde programmeertalen die overerving mogelijk maken, terwijl overbelasting ook beschikbaar kan zijn in een niet-objectgeoriënteerde taal. Met andere woorden, je overschrijft een methode in de superklasse, maar je overlaadt een methode binnen je eigen klasse.

Een ander verschil is dat overschreven methoden dezelfde methode naam, methode handtekening en het retourtype hebben, maar overbelaste methoden moeten verschillen in ofwel de handtekening of het retourtype (de naam moet hetzelfde zijn). Om onderscheid te maken tussen twee overschreven methoden, het exacte type object dat wordt gebruikt om de gebruikte methoden aan te roepen, terwijl om onderscheid te maken tussen twee overbelaste methoden, de typen parameters worden gebruikt. Een ander belangrijk verschil is dat overbelasting wordt opgelost tijdens het compileren, terwijl overschrijven tijdens runtime wordt opgelost.

Aanbevolen: