Forskjellen mellom metodeoverbelastning og overstyring

Metode Overbelastning
Metodeoverbelastning, også kjent som funksjon Overloading eller Compile Time Polymorphism, er et konsept om å ha to eller flere metoder med samme navn, men forskjellig signatur i samme omfang. Det er mange programmeringsspråk som støtter denne funksjonen: Ada, C ++, C #, D og Java.

Eksempel på metodeoverbelastning i C #

1234567891011121314 klasse overloadShapes float polygon (int radius, float pi) float circleArea = pi * radius * radius; int Polygon (int lengde, int bredde) int rektangelArea = lengde * bredde; int Polygon (int side) int squareArea = side * side;

Som vist i eksemplet ovenfor, blir metoden 'Polygon' overbelastet 3 ganger med forskjellig metode signatur, dvs. typen eller antall parametere er forskjellige.

Metode Overstyring
Metode overstyring, også kjent som funksjonstrykk eller Run-time polymorphism, er en OOP-funksjon som tillater en barneklasse å gi sin egen implementering til metoden som er definert i foreldreklassen. Gjennomføringen i barneklassen overstyrer definisjonen av metoden i grunnklassen, forutsatt at metoden i barneklassen skal ha samme navn, signatur og returtype.

Eksempel på metode overstyring i C #

12345678910 klasse Source1 public void draw () Console.Writeline ("Jeg er i klassen Source1"); klasse Source2 utvider Source1 public void draw () Console.Writeline ("Jeg er i klassen Source2");

Her tegner tegnemetoden i Source2-klassen tegnemetoden som er definert i Source1-klassen.

Forskjellen mellom metodeoverbelastning og overstyring av metode

  1. I Metode overbelastning må metodene ha en annen signatur. I metode må overordnede metoder ha samme signatur.
  2. Funksjon Overbelastning er å "legge til" eller "utvide" mer til metodens oppførsel. Funksjonens overordnede er å fullstendig "endre" eller "omdefinere" en oppførsel av en metode.
  3. Metodeoverbelastning brukes for å oppnå kompileringstidspolymorfisme; metode overstyring er brukt for å oppnå run-time polymorphism.
  4. I metode / funksjon overbelastning vet kompilatoren hvilket objekt som er tildelt til hvilken klasse på tidspunktet for kompilering, men i metode overstyring er denne informasjonen ikke kjent før runtime.
  5. Funksjon Overbelastning foregår i samme klasse, mens Overriding foregår i en klasse avledet fra en baseklasse.
DEN