Video: ? Programare in JAVA: Tutorial de Programare pentru Incepatori | Programare in Java #1 2024
I moștenire în C ++ capacitatea unei clase de a moșteni capacități sau proprietăți dintr-o altă clasă. Moștenirea este un concept comun. Moșteniți anumite proprietăți din clasa Omul, cum ar fi abilitatea mea de a conversa (mai mult sau mai puțin) inteligent și dependența mea de alimentul pe bază de aer, apă și carbohidrați (prea puțin dependent de acesta din urmă).
Aceste proprietăți nu sunt unice pentru oameni. Clasa Omul moștenește dependența de aer, apă și hrană din clasa Mammal, care o moștenise din clasa Animale.
Capacitatea de trecere a proprietăților este una puternică. Vă permite să descrieți lucrurile într-un mod economic. De exemplu, dacă cineva întreabă: "Ce este o rață? "Poți să spui," Este o pasăre care se duce la nebunie. "
În ciuda a ceea ce ați putea crede, acest răspuns transmite o cantitate considerabilă de informații. El știe ce este o pasăre și acum știe toate aceleași lucruri despre o rață plus proprietatea suplimentară a rațăi de "vrăjitorie". „
Limbile orientate pe obiect (OO) exprimă această relație de moștenire, permițând unei clase să moștenească de la alta. Limbile OO pot genera un model mai aproape de lumea reală (amintiți-vă că lucrurile din lumea reală!) Decât modelul generat de limbi care nu suportă moștenirea.
C ++ permite unei clase să moștenească o altă clasă după cum urmează:
class Student {}; clasa AbsolventStudent: public Student {};
Aici, un GraduateStudent moștenește toți membrii Student. Astfel, un student absolvent IS_A student . (Capitalizarea IS_A subliniază importanța acestei relații.) Desigur, GraduateStudent poate conține și alți membri care sunt unici pentru un GraduateStudent .
Moștenirea a fost introdusă în C ++ din mai multe motive. Desigur, motivul principal este capacitatea de a exprima relația de moștenire. Un motiv minor este de a reduce cantitatea de tastare.
Să presupunem că aveți o clasă Student, și vi se cere să adăugați o nouă clasă numită GraduateStudent. Moștenirea poate reduce drastic numărul de lucruri pe care trebuie să le puneți în clasă. Tot ceea ce aveți cu adevărat nevoie în clasa Student absolvent sunt lucruri care descriu diferențele dintre studenți și studenți absolvenți.
Un alt efect secundar are legătură cu modificarea software-ului. Să presupunem că moșteniți din anumite clase existente. Mai târziu, descoperiți că clasa de bază nu face exact ceea ce are nevoie subclasa.Sau poate clasa are un bug.
Modificarea clasei de bază ar putea sparge alt cod care folosește acea clasă de bază. Crearea și utilizarea unei noi subclase care supraîncărcă caracteristicile incorecte cu o versiune corectată vă rezolvă problema fără a provoca probleme suplimentare.