Anbefalt, 2024

Redaksjonens

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 #

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; }}
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 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 annen metode signatur, dvs. typen eller antall parametere er forskjellige.

Metode Overstyring
Metode-overstyring, også kjent som funksjonstrytende eller Run-time-polymorfisme, 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 #

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"); }}
1 2 3 4 5 6 7 8 9 10klasse Source1 {public void draw () {Console. Writeline ("Jeg er i klassen Kilde1"); }} 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 til å oppnå kompileringstidspolymorfisme; Metoden overstyring brukes til å oppnå run-time polymorphism.
  4. I metode / funksjon overbelastning vet kompilatoren hvilket objekt som er tildelt til hvilken klasse på kompileringstidspunktet, 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.
Top