Razlika Između Nadjačavanja I Preopterećenja U C

Sadržaj:

Razlika Između Nadjačavanja I Preopterećenja U C
Razlika Između Nadjačavanja I Preopterećenja U C

Video: Razlika Između Nadjačavanja I Preopterećenja U C

Video: Razlika Između Nadjačavanja I Preopterećenja U C
Video: Објектно оријентисано програмирање 1 - Групно спремање (први део) 2024, Svibanj
Anonim

Ključna razlika - nadjačavanje i preopterećenje u C #

Ključna razlika između nadjačavanja i preopterećenja u C # je u tome što se vezanje poziva nadjačane metode na njezinu definiciju događa u vrijeme izvođenja, dok se vezanje poziva preopterećene metode na njezinu definiciju događa u vrijeme kompajliranja.

C # je programski jezik opće namjene koji je razvio Microsoft. Glavna prednost C # je u tome što podržava objektno orijentirano programiranje (OOP). Jedan od stupova OOP-a je polimorfizam. Predmet daje višestruko ponašanje. Postoje dvije vrste u polimorfizmu poznate kao nadjačavanje i preopterećenje. Ovaj članak govori o razlici između nadjačavanja metode i preopterećenja u C #.

SADRŽAJ

1. Pregled i ključna razlika

2. Što je nadjačavanje u C #

3. Što je preopterećenje u C #

4. Sličnosti između nadjačavanja i preopterećenja u C #

5. Usporedna usporedba - Prevladavanje u odnosu na preopterećenje u C # u tabličnom obliku

6. Sažetak

Što je nadjačavanje u C #?

Postoji još jedan važan koncept u OOP-u je nasljeđivanje. Koristiti će atribute i metode već postojeće klase. Poboljšava ponovnu upotrebu koda. Već postojeća klasa je osnovna klasa, a nova je klasa poznata kao izvedena klasa. U nadjačavanju polimorfizma, trebala bi postojati osnovna i izvedena klasa. Vezivanje poziva nadjačane metode na definiciju događa se za vrijeme izvođenja. Primjer je sljedeći.

Razlika između poništavanja i preopterećenja u C #
Razlika između poništavanja i preopterećenja u C #

Slika 01: Program C # s nadjačavanjem

Prema gornjem programu, klasa Oblik je osnovna klasa i sadrži metodu prikaza. Klasa Pravokutnik i Trokut izvedene su klase. Ove izvedene klase također imaju prikaz iste metode s vlastitim implementacijama.

Prvo se kreira referentna varijabla obj. Pokazuje na objekt Oblik. Dakle, izvršit će se metoda prikaza klase Shape. Zatim, referentna varijabla pokazuje na objekt Rectangle. Dakle, izvršit će se metoda prikaza klase Rectangle. Konačno, referentna varijabla pokazuje na objekt Trokut. Dakle, izvršit će se metoda prikaza klase Triangle. Metodu prikaza osnovne klase nadjačavaju metode prikaza izvedenih klasa.

Način izvođenja odlučuje se za vrijeme izvođenja. Klasa Shape napisana je ključnom riječi 'virtual'. Klase Pravokutnik i Trokut napisane su ključnom riječi 'override'. Ako se ove ključne riječi ne koriste, izlaz će ispisati sadržaj metode prikaza klase Shape za sve.

Što je preopterećenje u C #?

U preopterećenju, više metoda ima isto ime, ali s različitim parametrima. Parametri mogu biti različitih vrsta. Metode također mogu imati različit broj parametara. Preopterećenje metode događa se u istoj klasi. Vezanje preopterećenih metoda za definiciju događa se u vrijeme sastavljanja. Pogledajte donji program C #.

Ključna razlika između poništavanja i preopterećenja u C #
Ključna razlika između poništavanja i preopterećenja u C #

Slika 02: Program C # s preopterećenjem

Prema gornjem programu, klasa A ima dvije metode s istim nazivom zvane sum. Imaju različite vrste parametara. U glavnom programu stvara se objekt A. Zbroj (2,3) pozvat će metodu zbroja s cijelim brojevima. Zbroj (5.1, 7.94) pozvat će metodu zbroja s dvostrukim vrijednostima. Obje metode imaju isto ime i jednak broj parametara. Ali vrste parametara su različite. Sukladno tome naziva se potrebna metoda. Preopterećenje se također može dogoditi ako su nazivi metoda i tipovi parametara jednaki, ali je broj parametara različit.

Koja je sličnost između poništavanja i preopterećenja u C #?

I nadjačavanje i preopterećenje u C # su vrste polimorfizma

Koja je razlika između poništavanja i preopterećenja u C #?

Diff Article Sredina prije tablice

Nadjačavanje i preopterećenje u C #

Nadjačavanje u C # je pružanje specifične implementacije u izvedenoj metodi klase za metodu koja već postoji u osnovnoj klasi. Preopterećenje u C # je stvaranje više metoda s istim imenom s različitim implementacijama.
Parametri
U C # Overriding, metode imaju isto ime, iste tipove parametara i isti broj parametara. U preopterećenju C # metode imaju isto ime, ali različit broj parametara ili drugačiju vrstu parametara.
Pojava
U C #, nadjačavanje se događa unutar osnovne klase i izvedene klase. U C # dolazi do preopterećenja unutar iste klase.
Vrijeme vezanja
Vezivanje poziva nadjačane metode na njezinu definiciju događa se za vrijeme izvođenja. Vezivanje poziva preopterećene metode na njezinu definiciju događa se u vrijeme sastavljanja.
Sinonimi
Nadjačavanje se naziva polimorfizam izvođenja, dinamički polimorfizam ili kasno vezanje. Preopterećenje se naziva polimorfizmom vremena kompajliranja, statičkim polimorfizmom ili ranim vezanjem.

Sažetak - Nadjačavanje i preopterećenje u C #

Nadjačavanje i Preopterećenje dvije su vrste polimorfizma. Razlika između nadjačavanja i preopterećenja u C # je u tome što se vezanje poziva nadjačane metode na njezinu definiciju događa u vrijeme izvođenja, dok se vezanje poziva preopterećene metode na njezinu definiciju događa u vrijeme prevođenja.

Preporučeno: