Moștenirea în caracteristicile de programare, tipuri, exemple

1502
Anthony Golden
Moștenirea în caracteristicile de programare, tipuri, exemple

moștenirea în programare orientat obiect este un mod de organizare a obiectelor într-o ierarhie de la cel mai general la cel mai specific. Este gadgetul folosit pentru a extinde o clasă într-o altă clasă, păstrând o execuție analogă.

În majoritatea limbajelor orientate pe obiecte bazate pe clase, un obiect creat prin moștenire, numit obiect copil, primește toate proprietățile și comportamentele obiectului părinte..

Dovadă simplă a moștenirii în orientarea obiectului. Sursa: Pluke / CC0 Creative Commons CC0 1.0 Domeniul public universal

Prin urmare, este o calitate care reprezintă relația dintre diferite clase. Moștenirea permite unei clase să aibă același comportament ca o altă clasă și să extindă sau să adapteze acel comportament pentru a oferi o acțiune specială pentru nevoi specifice.

Moștenirea poate ajuta la reprezentarea obiectelor care au unele diferențe și unele asemănări în modul lor de lucru. Puteți pune toate funcționalitățile pe care obiectele le au în comun într-o clasă de bază și apoi să definiți una sau mai multe subclase cu propria funcționalitate personalizată.

Indice articol

  • 1 Caracteristicile moștenirii
    • 1.1 Ierarhia
    • 1.2 Polimorfism
  • 2 Tipuri de moștenire
    • 2.1 Moștenirea unică
    • 2.2 Moștenirea pe mai multe niveluri
    • 2.3 Moștenirea ierarhică
    • 2.4 Moștenirea hibridă
    • 2.5 Moștenirea multiplă
    • 2.6 Tipuri de moștenire dintr-o clasă de bază
  • 3 Exemple
    • 3.1 Exemplu în Python
    • 3.2 Exemplu în C++
  • 4 Referințe

Caracteristicile moștenirii

Moștenirea este una dintre caracteristicile cheie ale programării orientate pe obiecte, care este utilizată pentru a defini o nouă clasă din clasele existente.

Adică, noi clase pot fi derivate din clasele de bază existente, adăugând noi caracteristici. Nu trebuie să scrieți de la zero. Prin urmare, moștenirea oferă o modalitate de a reutiliza cu ușurință codul existent.

Dacă aveți deja o clasă care face aproape tot ce doriți, puteți crea o subclasă care suprascrie parțial o parte din comportamentul său sau poate că se adaugă o funcționalitate nouă..

O clasă derivată moștenește toate metodele clasei de bază, cu excepția următoarelor:

- Constructori, destructori și constructori de copii din clasa de bază.

- Clase de bază operatorii supraîncărcați.

- Funcții prietenoase din clasa de bază.

Ierarhie

La fel ca un arbore genealogic, moștenirea servește la formarea unei ierarhii de clase. Este important de reținut că atributele determinate pentru o clasă de bază vor fi prezente automat în clasa derivată. De asemenea, metodele pentru clasa de bază vor funcționa pentru derivate.

Se spune că o clasă este o subclasă a clasei din care moștenește. Pe de altă parte, această clasă va fi superclasa ta. Cea mai generică clasă poate fi denumită o clasă de bază, deoarece se află la baza ierarhiei.

Polimorfism

Moștenirea este foarte populară în unele limbi cu tipuri statice, deoarece permite programatorului să evite unele dintre restricțiile tipului static.

Un obiect care moștenește de la un alt obiect este considerat un subtip al acelui obiect. Un exemplu ar putea fi obiectele „instructor” și „student”, fiecare dintre ele moștenind de la „persoană”.

Dacă instructorul și studentul sunt de același tip de persoană, puteți scrie o funcție care acceptă tipul de persoană ca parametru și care funcționează pe obiectele instructorului și studentului, deoarece ambii sunt moștenitori ai persoanei.

Tipuri de moștenire

Moștenire unică

Când o clasă derivată moștenește proprietățile și comportamentul unei singure clase de bază. Adică, o clasă se extinde la o altă clasă.

Moștenirea pe mai multe niveluri

Se referă la obiectul gadget în care puteți moșteni dintr-o clasă derivată, făcând din această clasă derivată clasa de bază pentru o nouă clasă. Adică, rezultă atunci când o clasă derivată este creată dintr-o altă clasă derivată.

Moștenirea ierarhică

În această moștenire, multe subclase moștenesc dintr-o singură clasă. Adică, se întâmplă atunci când o singură clasă de bază este moștenită de mai multe clase derivate.

Moștenirea hibridă

Este moștenirea rezultată atunci când oricare dintre cele trei moșteniri anterioare sunt combinate (unic, ierarhic și multinivel).

Moștenirea multiplă

Corespunde cifrei de moștenire atunci când o clasă moștenește de la mai multe superclase. Dezavantajul acestui tip de moștenire este că clasa derivată va trebui să se ocupe de dependența pe care o are față de două clase de bază.

Pe de altă parte, acest tip de moștenire permite programatorilor să ridice clase care combină aspectele mai multor clase și ierarhiile lor corespunzătoare..

Tipuri de moștenire dintr-o clasă de bază

Moștenirea publică

Când o clasă este derivată dintr-o clasă de bază publică, membrii publici ai clasei de bază devin membri publici ai clasei derivate, iar membrii protejați ai clasei de bază devin membri protejați ai clasei derivate.

Membrii privați ai unei superclase nu vor fi niciodată accesibile direct dintr-o clasă derivată, dar pot fi accesați prin apeluri făcute către membrii publici și protejați ai clasei de bază..

Moștenirea protejată

Când creați o clasă care moștenește dintr-o superclasă protejată, atât membrii publici, cât și membrii protejați ai acestei superclase vor deveni membri protejați ai clasei derivate.

Moștenirea privată

La subclasarea dintr-o superclasă privată, membrii publici și protejați ai acestei superclase vor deveni membri privați ai subclasei.

Exemple

Exemplu Python

Pentru a arăta cum funcționează principiul moștenirii, vom lua roboți sau o clasă mai bună de roboți în limbajul de programare Python. Pentru a face acest lucru, o clasă numită RobotMédico (PhysicianRobot), care este derivat din superclasa Robot.

Dacă vă uitați la codul clasei RobotMédico, puteți vedea că nu a fost definit nici un atribut sau metodă în această clasă.

Deoarece clasa RobotMedico este o subclasă a robotului, moștenește atât metodele __init__, cât și say_hi în acest caz. Moștenirea acestor metode înseamnă că pot fi utilizate ca și cum ar fi fost definite în clasa RobotMédico..

Când se creează o instanță a RobotMédico, funcția __init__ va crea și un atribut de nume. Metoda say_hi poate fi aplicată obiectului „y” al RobotMédico, așa cum se poate vedea în rezultatul codului anterior.

Exemplu în C++

O clasă poate moșteni din mai multe clase, ceea ce înseamnă că poate moșteni date și funcții din mai multe superclase. Pentru a defini o clasă derivată, se utilizează o listă de derivare a clasei pentru a specifica clasele de bază.

O listă de derivare a claselor din C ++ numește una sau mai multe clase de bază și are următoarea formă: clasă derivat-clasa: specificator de acces clasa de bază, in care specificator de acces este public, protejat sau privat, Da clasa de bază este numele unei clase definite anterior. Dacă nu este utilizat specificator de acces, Este luat privat Mod implicit.

Vă puteți gândi la superclasa „Shape” și la clasa sa derivată „Rectangle” după cum urmează:

Când codul de mai sus este compilat și executat, apare următoarea ieșire: "Suprafață totală: 35".

Referințe

  1. Dave Braunschweig (2020). Moștenire și polimorfism. Comunitatea Rebus. Luat din: press.rebus.community.
  2. Curs Python (2020). Moştenire. Luat de pe: python-course.eu.
  3. Data Mentor (2020). R Moștenirea. Luat din: datamentor.io.
  4. Tutorial Point (2020). Moștenirea C ++. Luat de pe: tutorialspoint.com.
  5. Informații despre rețea (2020). Diferite tipuri de moștenire. Preluat de pe: net-informations.com.

Nimeni nu a comentat acest articol încă.