Diferența dintre moștenire și containerizare

Anonim

Moștenirea vs. Containerul

Moștenirea și Containerul sunt două concepte importante găsite în OOP (Exemplu programare orientată pe obiecte: C ++). În termeni simpli, atât Containership, cât și Moștenirea se ocupă de furnizarea unor proprietăți sau comportamente suplimentare unei clase. Moștenirea este capacitatea unei clase de a moșteni proprietățile și comportamentul de la o clasă părinte prin extinderea acesteia. Pe de altă parte, Containership este capacitatea unei clase de a conține obiecte din diferite clase ca date membre.

Ce este moștenirea?

După cum sa menționat mai sus, Inheritance este capacitatea unei clase de a moșteni proprietățile și comportamentul de la o clasă părinte prin extinderea acesteia. Moștenirea oferă în mod esențial reutilizarea codului, permițând extinderea proprietăților și a comportamentului unei clase existente printr-o clasă nou definită. Dacă clasa A extinde B, atunci clasa B se numește clasa părinte (sau clasa super), iar clasa A se numește clasa copil (sau clasa / clasa derivată). În acest exemplu de scenariu, clasa A va moșteni toate atributele și metodele publice și protejate ale clasei superioare (B). Subclasa poate suprascrie opțional (oferă funcționalitate nouă sau extinsă la metode) comportamentul moștenit de la clasa parentală. Moștenirea reprezintă o relație "este-a" în PLO. Acest lucru înseamnă, în esență, că A este de asemenea un B. Cu alte cuvinte, B poate fi clasa cu o descriere generală a unei anumite entități din lumea reală, dar A specifică o anumită specializare. Într-o problemă de programare a lumii reale, clasa Persoană ar putea fi extinsă pentru a crea clasa Angajat. Aceasta se numește specializare. Dar, de asemenea, ați putea să creați mai întâi clasa Angajat și apoi să o generalizați și unei clase Persoană (de exemplu, generalizare). În acest exemplu, Angajatul va avea toate proprietățile și comportamentul Persoanei (de exemplu, angajatul este și o persoană) și poate conține unele funcționalități suplimentare (deci, Persoana nu este un angajat).

Ce este Containership?

Conținutul este capacitatea unei clase de a conține obiecte din diferite clase ca date membre. De exemplu, clasa A ar putea conține un obiect de clasă B ca membru. Aici, toate metodele publice (sau funcțiile) definite în B pot fi executate în clasa A. Clasa A devine container, în timp ce clasa B devine clasa limitată. Containerul este denumit și Compoziție. În acest exemplu, se poate spune că clasa A este compusă din clasa B. În PLO, Containership reprezintă o relație "a-a". Este important să rețineți că, deși containerul are acces la executarea tuturor metodelor publice din clasa conținută, acesta nu este capabil să modifice sau să furnizeze funcționalități suplimentare. Când vine vorba de o problemă de programare în lumea reală, un obiect de clasă TextBox poate fi conținut în clasa Formă, și astfel se poate spune că o Formă conține un TextBox (sau alternativ, un Formular este compus dintr-un TextBox).

Diferența dintre moștenire și constrângere

Deși moștenirea și conținutul sunt două concepte OOP, ele sunt destul de diferite în ceea ce permite programatorului să realizeze. Moștenirea este capacitatea unei clase de a moșteni proprietățile și comportamentul de la o clasă parentală prin extinderea acesteia, în timp ce Containership este capacitatea unei clase de a conține obiecte din diferite clase ca date membre. Dacă o clasă este extinsă, ea moștenește toate proprietățile și comportamentele publice și protejate și acele comportamente pot fi suprascrise de subclasă. Dar dacă o clasă este cuprinsă într-o altă clasă, containerul nu are capacitatea de a schimba sau de a adăuga un comportament conținutului conținut. Moștenirea reprezintă o relație "este-a" în OOP, în timp ce Containership reprezintă o relație "a-a".