Diferența cheie – Polimorfism vs moștenire în OOP
Programarea orientată pe obiecte (OOP) este folosită în mod obișnuit pentru a dezvolta software. Multe limbaje de programare acceptă programarea orientată pe obiecte. Programarea orientată pe obiecte este o metodologie de proiectare a unui program folosind clase și obiecte. O clasă în OOP este un plan pentru a crea un obiect. O clasă are proprietăți și metode. Un obiect este o instanță a unei clase. OOP conține patru piloni, cum ar fi moștenirea, polimorfismul, abstracția și încapsularea. Acest articol discută diferența dintre polimorfism și moștenire în OOP. Diferența cheie dintre polimorfism și moștenire în OOP este că polimorfismul este capacitatea unui obiect de a se comporta în mai multe moduri, iar moștenirea este de a crea o nouă clasă folosind proprietățile și metodele unei clase existente.
Ce este polimorfismul în POO?
Polimorfismul înseamnă a indica forme multiple. Un obiect poate avea mai multe comportamente. Polimorfismul poate fi împărțit în două categorii. Se supraîncărcă și suprascriu.
Supraîncărcare
Consultați programul de mai jos scris în Java.
Figura 01: Supraîncărcare
Conform programului de mai sus, este creat un obiect de tip A. La apelarea obj.sum(); va da rezultatul legat de metoda sum(). La apelarea obj.sum(2, 3); va da rezultatul legat de sum(int a, int b). Se poate observa că același obiect are comportamente diferite în funcție de situație. Când există mai multe metode cu același nume, dar cu parametri diferiți, se numește supraîncărcare. Este, de asemenea, cunoscut sub numele de legare statică sau polimorfism în timp de compilare.
Înlocuire
Un alt tip de polimorfism este suprascris. Consultați programul de mai jos scris în Java.
Figura 02: Suprascrierea
Conform programului de mai sus, există o metodă display() în clasa A. Clasa B se extinde din clasa A. Prin urmare, toate metodele din clasa A sunt accesibile de clasa B. Este moștenire. Conceptul de moștenire este descris în continuare mai târziu.
Clasa B au, de asemenea, aceeași metodă de afișare(). Când se creează un obiect de tip A și se apelează la metoda de afișare, rezultatul va da B. Metoda de afișare a clasei A este înlocuită de metoda de afișare a clasei B. Deci, rezultatul este B.
Când există metode cu același nume și aceiași parametri, dar în două clase diferite și sunt legate de moștenire, se numește suprascrie. Este cunoscut și sub denumirea de Legare târzie, Legare dinamică, Polimorfism în timp de rulare. Supraîncărcarea și suprascrierea sunt numite polimorfism. Este un concept major în programarea orientată pe obiecte.
Ce este moștenirea în POA?
Consultați programul de mai jos scris în Java.
Figura 03: Exemplu de moștenire
Conform programului de mai sus, clasa A are metoda sum() iar clasa B are metoda sub().
Metoda sum() din clasa A poate fi folosită în clasa B folosind cuvântul cheie extinde. Reutilizarea proprietăților și metodelor dintr-o clasă existentă pentru a crea o nouă clasă este cunoscută sub numele de Moștenire. Chiar și nu există o metodă sum() în clasa B; este moștenit din clasa A. Moștenirea este utilă pentru reutilizarea codului. Clasa mai veche se numește clasă de bază, superclasă sau clasă părinte. Clasa derivată se numește subclasă sau clasă copil.
Tipuri de moștenire
Există diferite tipuri de moștenire. Acestea sunt moștenirea pe un singur nivel, moștenirea pe mai multe niveluri, moștenirea multiplă, moștenirea ierarhică și moștenirea hibridă.
Moștenire unică
În Moștenirea unică, există o super-clasă și o sub-clasă. Dacă clasa A este superclasa și clasa B este subclasa, toate proprietățile și metodele clasei A sunt accesibile de clasa B. Există un singur nivel; prin urmare, este numită moștenire pe un singur nivel.
Moștenire pe mai multe niveluri
În Moștenirea pe mai multe niveluri există trei niveluri de clase. Clasa intermediară moștenește de la super clasă. Subclasa moștenește din clasa intermediară. Dacă există trei clase ca A, B și C și A este super-clasa și B este clasa intermediară. Apoi B moștenește de la A și C moștenește de la B, este o moștenire pe mai multe niveluri.
Moștenire multiplă
În Moștenirea multiplă, există multe superclase și o subclasă. Dacă există trei superclase numite A, B, C și D este subclasa, atunci clasa D poate moșteni de la A, B și C. Moștenirea multiplă este acceptată în limbajul de programare C++. Nu este acceptat în limbaje de programare precum Java sau C. Interfețele sunt folosite pentru implementarea moștenirii multiple în aceste limbi.
Moștenire ierarhică
Dacă există clase numite A ca superclase și B, C sunt subclase, acele subclase pot moșteni proprietăți și metode ale clasei A. Acest tip de moștenire este cunoscut sub numele de Moștenire ierarhică.
Moștenire hibridă
Există un alt tip special de moștenire care este cunoscut sub numele de moștenire hibridă. Este o combinație de moșteniri multinivel și multiple. Dacă A, B, C și D sunt clase și B moștenește de la A și D moștenește atât de la B, cât și de la C, atunci este o moștenire hibridă.
Care sunt asemănările dintre polimorfism și moștenire în POO?
Ambele sunt concepte de programare orientată pe obiecte
Care este diferența dintre polimorfism și moștenire în POO?
Polimorfism vs moștenire în OOP |
|
Polimorfismul este o capacitate a unui obiect de a se comporta în mai multe moduri. | Moștenirea înseamnă crearea unei noi clase folosind proprietățile și metodele unei clase existente. |
Utilizare | |
Polimorfismul este folosit pentru ca obiectele să apeleze ce formă de metode în timpul compilării și în timpul rulării. | Moștenirea este folosită pentru reutilizarea codului. |
Implementare | |
Polimorfismul este implementat în metode. | Moștenirea este implementată în clase. |
categorii | |
Polimorfismul poate fi împărțit în supraîncărcare și suprascriere. | Moștenirea poate fi împărțită în moștenire pe un singur nivel, pe mai multe niveluri, ierarhică, hibridă și moștenire multiplă. |
Rezumat – Polimorfism vs moștenire în OOP
Polimorfismul și moștenirea sunt concepte majore în programarea orientată pe obiecte. Diferența dintre polimorfism și moștenire în OOP este că polimorfismul este o interfață comună pentru mai multe forme, iar moștenirea este de a crea o nouă clasă folosind proprietățile și metodele unei clase existente. Ambele concepte sunt utilizate pe scară largă în dezvoltarea de software.
Descărcați PDF Polimorfism vs Moștenire în OOP
Puteți descărca versiunea PDF a acestui articol și o puteți utiliza în scopuri offline, conform nota de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre polimorfism și moștenire în OOP