Diferența dintre suprasolicitarea și suprimarea metodelor

Metoda de supraîncărcare
Supraîncărcarea metodelor, cunoscută și sub denumirea de supraîncărcare a funcțiilor sau polimorfism de compilare a timpului, este un concept de a avea două sau mai multe metode cu același nume, dar cu o altă semnătură diferită în același domeniu. Există multe limbi de programare care acceptă această caracteristică: Ada, C ++, C #, D și Java.

Exemplu de suprasolicitare a metodelor în C #

1234567891011121314 clasa de suprasarcină float Poligon (rază int, float pi) float circleArea = pi * rază * rază; int Poligon (lungime int, int lățime) int rectangleArea = = partea laterală *;

După cum se arată în exemplul de mai sus, metoda "Polygon" este supraîncărcată de 3 ori cu semnătură diferită a metodei, adică tipul sau numărul de parametri sunt diferiți.

Înlocuirea metodei
Suprascrierea metodei, cunoscută și sub denumirea de funcționalitate sau polimorfism de execuție a timpului, este o caracteristică OOP care permite unei clase de copil să furnizeze propria implementare metodei definite în clasa părinte. Implementarea în clasa copil suprascrie definiția metodei din clasa de bază, cu condiția ca metoda din clasa copil să aibă același nume, semnătura și tipul retur.

Exemplu de suprascriere a metodei în C #

1 2 3 4 5 6 7 8 9 10 class Source1 public void draw () Console.Writeline ("Sunt în clasa Source1"); Clasa Source2 extinde Source1 public void draw () Console.Writeline ("Sunt în clasa Source2");

Aici, metoda draw în clasa Source2 înlocuiește metoda de tragere definită în clasa Source1.

Diferența dintre suprasolicitarea metodelor și excluderea metodei

  1. În metodele de supraîncărcare Metoda trebuie să aibă o altă semnătură. În metodă, metodele imperative trebuie să aibă aceeași semnătură.
  2. Supraîncărcarea funcției este de a "adăuga" sau de a "extinde" mai mult la comportamentul metodei. Suprascrierea funcției este de a "modifica" complet sau de a "redefini" comportamentul unei metode.
  3. Supraîncărcarea metodelor este utilizată pentru a realiza polimorfismul timpului de compilare; metoda de suprimare este folosită pentru a realiza polimorfismul de execuție.
  4. În procesul de supraîncărcare a metodei / funcțiilor, compilatorul știe ce obiect a fost atribuit clasei la momentul compilării, dar în metoda de suprascriere aceste informații nu sunt cunoscute până la execuție.
  5. Supraîncărcarea funcției are loc în aceeași clasă, în timp ce Suprascrierea are loc într-o clasă derivată dintr-o clasă de bază.