Herència (programació)

Herència representada amb UML.[1] La classe derivada tindrà els atributs x i y, i els mètodes a() i b().

L’Herència és un dels conceptes fonamentals de la programació orientació a objectes i té gran importància en el desenvolupament de software. S’utilitza l’herència per crear classes noves a partir de les ja definides. Una classe nova pot ser una extensió o bé una restricció de la classe original. A més d’aquest aspecte estructural, serveix també per documentar les semblances entre les classes, que és particularment important durant les primeres etapes del disseny de software, la nova classe està unida amb la classe original amb una relació "es-un" (engl. Is-A).

La classe que hereta es diu classe base (també super-classe o classe pare), la classe heretada s’anomena classe derivada (també sub-classe o classe fill), aquesta pren o hereta els atributs (variables) i comportament (mètodes) de la classe base (reutilitza codi). Aquest procés es denomina especialització, en sentit contrari en diríem generalització, termes limitats principalment a nivell de models. En llenguatge UML (Unified Modeling Language) una relació d'herència es representa amb una fletxa triangular, apuntant a la classe base des de la classe derivada, els mètodes i atributs heretats no es repeteixen en la representació de la sub-classe.

El 1967 el llenguatge de programació Simula introduïa per primera vegada el concepte d'herència juntament amb altres conceptes de la programació orientada a objectes, com ara el polimorfisme.[2]

Les classes permeten especificar els tipus de les dades i les funcions que seran heretades. Alguns llenguatges de programació separen aquests aspectes encara que sigui parcialment, i distingeixen entre classe i interfície (engl. Interface).

Altres idiomes
العربية: وراثة (حوسبة)
azərbaycanca: İrsilik
беларуская (тарашкевіца)‎: Спадкаваньне (праграмаваньне)
latgaļu: Bērnaklase
norsk nynorsk: Arv i programmering