Preporučeno, 2024

Izbor Urednika

Razlika između načina preopterećenja i poništavanja

Preopterećenje metode
Preopterećenje metoda, također poznato kao preopterećenje funkcije ili polimorfizam vremena sastavljanja, je koncept da imaju dva ili više metoda s istim nazivom, ali različitog potpisa u istom opsegu. Postoje mnogi programski jezici koji podržavaju ovu značajku: Ada, C ++, C #, D i Java.

Primjer preopterećenja metode u C #

klasa OverloadShapes {float Polygon (int radijus, float pi) {float circleArea = pi * radijus *; } int Poligon (int duljina, int širina) {int rectangleArea = dužina * širina; } int Poligon (int strana) {int squareArea = strana *; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14klasa OverloadShapes {float Polygon (int radijus, float pi) {float circleArea = pi * radijus *; } int Poligon (int duljina, int širina) {int rectangleArea = dužina * širina; } int Poligon (int strana) {int squareArea = strana *; }}

Kao što je prikazano u gornjem primjeru, metoda 'Polygon' je preopterećena 3 puta s različitim potpisom metode, tj. Tip ili broj parametara su različiti.

Nadjačavanje metode
Nadjačavanje metoda, također poznato kao Prekoračenje funkcije ili Polimorfizam vremena izvođenja, je OOP značajka koja omogućuje podređenoj klasi pružanje vlastite implementacije metodi definiranoj u roditeljskoj klasi. Implementacija u podređenoj klasi nadjačava definiciju metode u osnovnoj klasi, pod uvjetom da metoda u podređenoj klasi treba imati isto ime, potpis i tip vraćanja.

Primjer poništavanja metode u C #

klasa Source1 {public void draw () {Console.Writeline ("Ja sam u klasi Source1"); }} klasa Source2 proširuje Source1 {public void draw () {Console.Writeline ("Ja sam u klasi Source2"); }}
1 2 3 4 5 6 7 8 9 10klasa Source1 {javni void draw () {konzola. Writeline ("Ja sam u klasi Source1"); }} Razred Source2 proširuje Source1 {public void draw () {Console. Writeline ("Ja sam u klasi Source2"); }}

Ovdje metoda draw u klasi Source2 nadjačava metodu draw koja je definirana u klasi Source1.

Razlika između načina preopterećenja i poništavanja metode

  1. U Metodi preopterećenja metoda mora imati drugačiji potpis. U metodi, metode nadjačavanja moraju imati isti potpis.
  2. Preopterećenje funkcije je „dodavanje“ ili „proširenje“ na ponašanje metode. Prekoračenje funkcije je u potpunosti „promijeniti“ ili „redefinirati“ ponašanje metode.
  3. Preopterećenje metode se koristi za postizanje polimorfizma vremena sastavljanja; poništavanje metode se koristi za postizanje polimorfizma u vremenu izvođenja.
  4. U metodu / funkciji preopterećenje kompajler zna koji je objekt dodijeljen kojoj klasi u vrijeme kompilacije, ali u metodu nadjačavanja ova informacija nije poznata do vremena izvođenja.
  5. Funkcija Preopterećenja odvija se u istoj klasi, dok se Overriding odvija u klasi izvedenoj iz osnovne klase.
Top