Razlika između preopterećenja metoda i prevladavanja

Metoda Preopterećenje

Preopterećenje metoda, poznato i kao preopterećenje funkcije ili polimorfizam sažimanja vremena, koncept je postojanja dvije ili više metoda istog naziva, ali različitih potpisa u istom opsegu. Postoji mnogo programskih jezika koji podržavaju ovu značajku: Ada, C ++, C #, D i Java.

Primjer preopterećenja metode u C #
Kao što je prikazano u gornjem primjeru, metoda 'Poligon' se preopterećuje 3 puta s različitim potpisom metode, tj. Vrsta ili broj parametara su različiti.

Nadvladavanje metoda

Nadjačavanje metoda, poznato i kao prevladavanje funkcije ili polimorfizam pokretanja vremena, OOP je značajka koja omogućuje dječjoj klasi da pruži vlastitu implementaciju metodi definiranoj u roditeljskoj klasi. Provedba u podređenoj klasi nadjačava definiciju metode u osnovnoj klasi, pod uvjetom da metoda u podređenoj klasi treba imati isti naziv, potpis i vrstu povratka.

Primjer preglasavanja metoda u C #
Ovdje metoda izvlačenja u klasi Source2 nadjačava metodu crtanja definiranu u klasi Source1.

Razlika između preopterećenja metoda i prevladavanja metoda

  1. U Metodi preopterećenja metode moraju imati drugačiji potpis. U metodi, presudne metode moraju imati isti potpis.
  2. Funkcija Preopterećenje je "dodati" ili "proširiti" više u ponašanje metode. Nadjačaj funkcije je potpuno "promijeniti" ili "redefinirati" ponašanje metode.
  3. Preopterećenje metoda koristi se za postizanje polimorfizma u kompiliranom vremenu; prevladavanje metoda koristi se za postizanje polimorfizma u toku vremena.
  4. U načinu / funkciji preopterećenje prevodilac zna koji je objekt dodijeljen toj klasi u vrijeme kompilacije, ali u načinu nadjačavanja ove informacije nisu poznate do runtime.
  5. Funkcija Preopterećenje se odvija u istoj klasi dok se prevladavanje vrši u klasi izvedenoj iz osnovne klase.
TO