Diferența cheie - supraîncărcare vs suprascriere în Java
Programarea orientată pe obiecte (OOP) este o paradigmă majoră în dezvoltarea de software. Este o metodologie de proiectare a unui program folosind clase și obiecte. O clasă este un plan. Descrie ce ar trebui să conțină în obiect. Acesta definește proprietățile sau atributele și metodele din care ar trebui să constea obiectul. Prin urmare, un obiect este o instanță a unei clase. Aceste obiecte comunică cu alte obiecte. Un concept major al POO este polimorfismul. Este capacitatea unui obiect de a se comporta în mai multe moduri. Polimorfismul este clasificat în două secțiuni care sunt supraîncărcarea și suprascrierea. Acest articol discută diferența dintre aceste două în Java. Diferența cheie între supraîncărcare și suprascriere în Java este că suprasolicitarea este capacitatea de a crea mai multe metode cu același nume cu implementări diferite și Suprascrierea este de a oferi o implementare pentru o metodă de subclasă care există deja în superclasă.
CUPRINS
1. Prezentare generală și diferența cheie
2. Ce este supraîncărcarea în Java
3. Ce este suprascrierea în Java
4. Asemănări între supraîncărcare și suprascriere în Java
5. Comparație side by side - Supraîncărcare vs suprascriere în Java în formă tabelară
6. Rezumat
Ce este supraîncărcarea în Java?
Supraîncărcarea este capacitatea de a crea mai multe metode cu același nume cu implementări diferite. Consultați codul Java de mai jos.
Figura 01: Program Java care explică supraîncărcarea cu un număr diferit de argumente
Conform programului de mai sus, clasa A conține două metode cu același nume. Prima metodă sumă are doi parametri. A doua metodă sumă are trei parametri. Când se creează un obiect de tip A și se apelează suma (2,3), se va apela metoda sumă cu doi parametri care sunt suma (int a, int b) și returnează 5. Când se creează un obiect de tip A și se apelează suma (2, 3,4), va apela cealaltă metodă sumă cu trei parametri care este suma (int a, int b, int c) și returnează 9.
Numele metodei este același, dar numărul de parametri este diferit. Se poate observa că același obiect se comportă diferit. Acest concept este cunoscut sub numele de supraîncărcare. Este, de asemenea, denumit legare statică sau compilează polimorfismul în timp.
De asemenea, pot fi supraîncărcate cu diferite tipuri de date. Consultați codul Java de mai jos.
Figura 02: Program Java care explică supraîncărcarea cu un număr diferit de argumente
Conform programului de mai sus, clasa A constă din două metode cu același nume. Metoda sumă (int a, int b) primește două valori întregi. Suma (dublu o dublă b) primește două valori duble. Când se creează obiectul de tip A și se apelează suma (2,3), se va apela sumă (int a, int b) și se va returna valoarea 5. Când se apelează sumă (3.4, 5.6), se va apela sumă (dublu o dublă b) și returnează valoarea 9.0. În acest exemplu, metodele au același nume, dar un tip diferit de variabile. Aceasta este, de asemenea, supraîncărcare.
Ce este suprascrierea în Java?
În Java, este posibil să se construiască subclasele cu clase deja existente. În loc să creați noua clasă de la început, este posibil să utilizați proprietățile și metodele clasei deja existente. Clasa existentă este superclasa, iar clasa derivată este subclasa. Când subclasa oferă o implementare pentru o metodă, care se află deja în superclasă, este cunoscută sub numele de suprascriere. Consultați programul Java de mai jos.
Figura 03: Program Java pentru suprascriere
Conform programului de mai sus, Clasa A are un afișaj de metodă (). Clasa B se extinde de la clasa A, deci proprietățile și metodele clasei A sunt accesibile de clasa B. Clasa B are metoda afișare () cu o implementare specifică. Când creați un obiect de tip A, și apelați metoda de afișare, acesta va da ieșirea B. Chiar dacă clasa A are o metodă de afișare, este suprascrisă fie metoda de afișare din clasa B. Subclasa implementează o metodă care există deja în superclasă.
Acest concept este un tip de polimorfism și cunoscut sub numele de suprasolicitare. Se mai numește și legare târzie, legare dinamică, polimorfism în timpul rulării.
Care sunt asemănările dintre supraîncărcare și suprascriere în Java?
- Ambele sunt tipuri de polimorfism.
- În supraîncărcare și suprascriere, metodele au același nume.
Care este diferența dintre supraîncărcare și suprascriere în Java?
Difuzarea articolului din mijloc înainte de tabel
Supraîncărcare vs suprascriere în Java |
|
Supraîncărcarea în Java este capacitatea de a crea mai multe metode cu același nume cu implementări diferite. | Suprascrierea în Java oferă o implementare specifică în metoda subclasă pentru o metodă deja existentă în superclasă. |
Parametrii | |
În supraîncărcare, metodele au același nume, dar un număr diferit de parametri sau un tip diferit de parametri. | În cazul suprascrierii, metodele au același nume și parametrii trebuie să fie aceiași. |
Teme | |
Supraîncărcarea are loc în cadrul clasei. | Suprascrierea are loc în cadrul celor două clase care au o relație de moștenire. |
Sinonime | |
Supraîncărcarea se numește polimorfism de timp compilat. | Suprascrierea se numește polimorfism în timpul rulării. |
Rezumat - Supraîncărcare vs suprascriere în Java
Polimorfismul este un concept major în programarea orientată pe obiecte. Oferă posibilitatea unui obiect de a se comporta în mai multe moduri. Aceasta poate fi fie supraîncărcare, fie suprascriere. Supraîncărcarea este polimorfismul în timpul compilării, iar suprasolicitarea este polimorfismul în timpul rulării. Sunt utile în dezvoltarea aplicațiilor software. Diferența dintre suprascriere și supraîncărcare este că suprasarcina este capacitatea de a crea mai multe metode cu același nume cu implementări diferite, iar suprascrierea oferă o implementare specifică în metoda subclasă pentru o metodă deja existentă în superclasă. Este posibil să implementați atât supraîncărcare, cât și suprascriere în Java.
Descărcați PDF Overloading vs Overriding în Java
Puteți descărca versiunea PDF a acestui articol și o puteți folosi în scopuri offline, conform notei de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre supraîncărcare și suprascriere în Java