Aanbevolen, 2024

Editor'S Choice

Verschil tussen methode-overbelasting en overschrijven

Methode Overbelasting
Overbelasting van de methode, ook bekend als Functie overbelasting of Compileertijd polymorfisme, is een concept van twee of meer methoden met dezelfde naam maar met een andere handtekening in dezelfde scope. Er zijn veel programmeertalen die deze functie ondersteunen: Ada, C ++, C #, D en Java.

Voorbeeld van overbelasting van methode in C #

klasse OverloadShapes {float Polygon (int radius, float pi) {float circleArea = pi * radius * radius; } int Polygoon (int lengte, int breedte) {int rectangleArea = lengte * breedte; } int Polygoon (int kant) {int squareArea = side * side; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14klasse OverloadShapes {float Polygon (int radius, float pi) {float circleArea = pi * radius * radius; } int Polygoon (int lengte, int breedte) {int rectangleArea = lengte * breedte; } int Polygoon (int kant) {int squareArea = side * side; }}

Zoals in het bovenstaande voorbeeld wordt getoond, wordt de methode 'Polygoon' driemaal overladen met een andere handtekening, dwz het type of het aantal parameters is anders.

Methode overschrijven
Methode-overschrijving, ook wel functie-overriding of runtime-polymorfisme genoemd, is een OOP-functie waarmee een onderliggende klasse zijn eigen implementatie kan bieden voor de methode die is gedefinieerd in de bovenliggende klasse. De implementatie in de onderliggende klasse overschrijft de definitie van de methode in de basisklasse, op voorwaarde dat de methode in de onderliggende klasse dezelfde naam, handtekening en retourneringstype heeft.

Voorbeeld van methode die wordt overschreven in C #

class Source1 {public void draw () {Console.Writeline ("I am in class Source1"); }} class Source2 breidt Source1 uit {public void draw () {Console.Writeline ("I am in class Source2"); }}
1 2 3 4 5 6 7 8 9 10class Source1 {public void draw () {Console. Schrift ("Ik zit in klas Source1"); }} class Source2 breidt Source1 uit {public void draw () {Console. Schrift ("Ik zit in de klas Source2"); }}

Hier overschrijft de tekenmethode in de klasse Source2 de tekenmethode die is gedefinieerd in de klasse Source1.

Verschil tussen overbelasting van methoden en overschrijven van methode

  1. Methoden voor overbelasting van methoden moeten een andere handtekening hebben. In de methode moeten overschrijvende methoden dezelfde handtekening hebben.
  2. Functieoverbelasting is om meer toe te voegen of uit te breiden naar het gedrag van de methode. Het opheffen van de functie is het volledig "veranderen" of "opnieuw definiƫren" van het gedrag van een methode.
  3. Overbelasting van de methode wordt gebruikt om Compileertijd polymorfisme te bereiken; methode-overriding wordt gebruikt om run-time polymorfisme te bereiken.
  4. In de methode / functie overloading-compiler weet welk object aan welke klasse is toegewezen op het moment van compilatie, maar in de methode die deze informatie negeert, is pas na runtime bekend.
  5. Functie Overloading vindt plaats in dezelfde klasse terwijl het opheffen plaatsvindt in een klasse die is afgeleid van een basisklasse.
Top