ce este polimorfismul în Java?
polimorfismul în Java apare atunci când există una sau mai multe clase sau obiecte legate între ele prin moștenire. Cu alte cuvinte, este capacitatea unui obiect de a lua multe forme. Moștenirea permite utilizatorilor să moștenească atribute și metode, iar polimorfismul folosește aceste metode pentru îndeplinirea diferitelor sarcini. Deci, scopul este comunicarea, dar abordarea este diferită. de exemplu, aveți un smartphone pentru comunicare., Modul de comunicare pe care îl alegeți ar putea fi orice. Poate fi un apel, un mesaj text, un mesaj de imagine, poștă etc. Deci, scopul este comun, care este comunicarea, dar abordarea lor este diferită. Aceasta se numește polimorfism. în acest tutorial, veți învăța –
- ce este polimorfismul?
- polimorfismul Java în OOP cu exemplul
- metoda de suprasarcină
- diferența dintre supraîncărcare și suprasarcină
- ce este polimorfismul dinamic?,
- Super cuvinte Cheie
- Diferența între Static & Polimorfism Dinamic
Click aici dacă videoclipul nu este accesibil
Java Polimorfism în OOP e cu Exemplu
Avem o singură clasă părinte, „Cont”, cu funcția de depunere și retragere. Contul are 2 clase de copii
operațiunea de depunere și retragere este aceeași pentru salvarea și verificarea conturilor. Deci metodele moștenite din clasa de cont vor funcționa.,
Schimbare în Cerință Software-ul
Există o schimbare în specificare a cerințelor, ceva care este atât de comună în industria de software. Ar trebui să adăugați funcționalitate cont bancar privilegiat cu facilitatea de descoperit de cont.
pentru un fundal, descoperit de cont este o facilitate în cazul în care vă puteți retrage o sumă mai mult decât este disponibil soldul în contul dvs .. deci, metoda de retragere pentru nevoile privilegiate să fie implementată din nou., Dar nu schimbați bucata de cod testată în contul de Economii și verificare. Acest lucru este avantajul OOPS
Pasul 1) Astfel încât, atunci când „retras” metoda pentru cont de economii este numit o metodă de părinte cont de clasa este executat.
Pasul 2), Dar atunci când „Retrage” metoda privilegiată de cont (overdraft facility) este numit retrage metoda definită în clasa privilegiată este executat. Acesta este polimorfismul.,
Metoda Imperative
Metoda Imperative este redefinirea o super metodă de clasă într-o sub-clasa.
reguli pentru suprascrierea metodei
- semnătura metodei, adică numele metodei, lista parametrilor și tipul de retur trebuie să se potrivească exact.
- metoda suprascrisă poate lărgi accesibilitatea, dar nu o poate restrânge, adică dacă este privată în clasa de bază, clasa copil o poate face publică, dar nu invers.,
Exemplu
Diferența între Supraîncărcarea și Imperative
Ce este Dinamic Polimorfismul?
polimorfismul dinamic este mecanismul prin care mai multe metode pot fi definite cu același nume și semnătură în superclasă și subclasă. Apelul la o metodă suprascrisă sunt rezolvate la momentul rulării.,
Polimorfism Dinamic Exemplu:
O referință variabilă de super clasa poate referi la un sub-obiect de clasă
Doctor obj = new Surgeon();
luați în Considerare declarația
obj.treatPatient();
Aici de referință variabilă „obj” este de clasa părinte, dar obiectul este orientate spre este de clasa a copilului (așa cum se arată în diagrama).
obj.,n
Dacă o clasa de baza de referință este utilizat pentru a apela o metoda, metoda de a fi invocate este decis de către JVM, în funcție de obiectul de referință este îndreptat la
De exemplu, chiar dacă obj este o trimitere la Medic, se numește metoda de Chirurg, ca punctele de la un Chirurg obiect
Acesta este decis în timpul run-time și, prin urmare, numit dinamic sau run-time polimorfism
Super cuvinte Cheie
Ce se întâmplă dacă treatPatient metodă în Chirurg de clasă vrea să execute funcționalitatea definită Doctor în clasă și apoi efectuați propriul funcționalitate specifică?,
în acest caz, cuvântul cheie super
poate fi utilizat pentru a accesa metodele clasei părinte din clasa copil.
treatPatient metodă în Chirurg de clasă ar putea fi scris ca:
treatPatient(){ super.treatPatient(); //add code specific to Surgeon}
cuvinte cheie super poate fi folosit pentru a accesa orice membru de date sau metode de super clasa in clasa sub.,br>Example:-To learn Inheritance, Polymorphism & super keyword
Step 1) Copy the following code into an Editor
Difference between Static & Dynamic Polymorphism
|
|
---|---|
It relates to method overloading., | se referă la suprascrierea metodei. |
Erorile, dacă există, sunt rezolvate la momentul compilării. Deoarece codul nu este executat în timpul compilării, de unde și numele static. Ex: void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. |
În cazul în care o variabilă de referință apelează o metodă suprascrisă, metoda care trebuie invocată este determinată de obiect, variabila dvs. de referință indică spre. Acest lucru poate fi determinat numai în timpul rulării atunci când codul este în execuție, de unde și numele dinamic., Ex: //reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient(); |