Diferența principală : Supraîncărcarea înseamnă că au două metode din aceeași clasă cu același nume și cu diferite tipuri de parametri, în timp ce mijloacele de suprasarcină au două metode diferite în aceeași clasă cu aceleași tipuri de parametri, dar cu diferite implementări.
Metodele principale și supraîncărcarea sunt două concepte sau tehnici utilizate în limbile de programare java. Ambele concepte permit programatorului să furnizeze diferite implementări pentru metode cu același nume. Acest articol diferențiază cele două concepte de programare.
Supraîncărcarea funcțiilor sau suprasolicitarea metodelor permite crearea mai multor metode cu același nume, în aceeași clasă, dar diferite între ele în tipul de intrare și de ieșire al funcției. Este pur și simplu definită ca abilitatea unei funcții de a îndeplini diferite sarcini.
În timpul supraîncărcării, implementările de metode au același nume deoarece efectuează sarcini similare. De asemenea, supraîncărcarea este considerată polimorfă. Funcțiile care au diferite implementări depind de tipurile de argument specificate. De obicei, este asociat cu limbi de programare statice, care impune verificarea tipului în apelurile funcționale. Este, de asemenea, considerat practic, deoarece permite programatorului să scrie o serie de metode diferite în aceeași clasă. Cu toate acestea, în timpul supraîncărcării procesorului de execuție se schimbă numele tuturor metodelor supraîncărcate, ceea ce poate fi o problemă.
Metoda de suprascriere, în programarea orientată pe obiecte, este o caracteristică care permite unei clase de subclase sau unui copil să furnizeze o implementare specifică a unei metode care este deja furnizată de una dintre clasele super-clase sau de părinți. Implementarea în subclasă înlocuiește sau înlocuiește implementarea în clasa părinte furnizând o metodă cu același nume, aceiași parametri sau aceeași semnătură și același tip de retur ca și metoda din clasa părinte.
În metoda de suprascriere, funcțiile sunt codificate pentru a îndeplini sarcini specifice într-un program. Îndepărtarea depinde de prezența unei funcții de clasă de bază pentru aspectul acesteia. Aici, funcția executată este determinată de obiectul care este folosit pentru a se invoca, adică dacă un obiect al unei clase părinte este folosit pentru a invoca metoda, atunci funcția din clasa părinte va fi executată. Înlăturarea este de natură polimorfă; ajută la proiectarea programelor bazate pe primul parametru implicit, care poate fi rezolvată în timpul rulării. Există câteva limbi în java care permit unui programator să împiedice suprimarea unei metode.
Comparație între supraîncărcare și depășire:
supraîncărcarea | Supracomandarea | |
Definiție | Înseamnă a avea metode de aceeași clasă sub același nume, dar fiecare metodă are parametri diferiți sau are aceiași parametri cu diferite tipuri și ordine. | Înseamnă a avea o clasă subactivă cu aceleași metode cu același nume și exact același tip de parametri și același tip de returnare ca o clasă super. |
Sens | Înseamnă că mai multe metode au același nume în aceeași clasă, dar au o altă semnătură. | Aceasta înseamnă că metoda clasei de bază este redefinită în clasa derivată cu aceeași semnătură. |
Comportament | Se adaugă sau se extinde la comportamentul metodelor. | Modifică comportamentul existent al unei metode. |
polimorfismul | Este un polimorfism de compilare a timpului. | Este un polimorfism al timpului de rulare. |
Metoda statică | Metoda statică poate fi supraîncărcată. | Metoda statică nu poate fi înlocuită. |
Legătură | Legătura statică. | Legătura dinamică. |
Moştenire | Poate sau nu poate cere moștenire. | Întotdeauna necesită moștenire. |
Asociere | Acesta este de obicei asociat cu limbile programelor statice. | De obicei, este asociat cu programe orientate pe obiecte. |
Semnătură | Metodele au semnătura diferită. | Metodele trebuie să aibă aceeași semnătură. |
Viteză | Este mai rapid decât suprasolicitarea. | Este lent în comparație cu supraîncărcarea. |
Clase | Nu necesită mai mult de o clasă pentru supraîncărcare. | Este nevoie de cel puțin două clase pentru supraîncărcare. |
Nivel | Metodele pot avea orice nivel de acces. | Metodele au același nivel sau nivel de acces larg. |
Exemplu | Adăugați clasa { suma int (int a, int b) { returnați a + b; } suma int (int a) { returnați + 10; } } | Clasa A // Clasa Super { void display (int num) { print num; } } // Clasa B moștenește clasa A Clasa B // Subclasa { void display (int num) { print num; } } |