L'Eredità (in inglese inheritance) è un principio proprio alla programmazione orientata all'oggetto, che permette di creare una nuova classe partendo da una già esistente.
Il nome "Eredità" (detto anche talvolta derivazione di classe) proviene dal fatto che la classe derivata (la classe appena creata) contiene gli attributi e i metodi dalla sua superclasse (la classe da cui deriva). L'interesse maggiore dell'eredità sta nel poter definire dei nuovi attributi e dei nuovi metodi per la classe derivata, che vanno ad aggiungersi a quelli ereditati.
In questo modo si crea una gerarchia di classi sempre più specializzate. Questo ha come vantaggio più grande di non dover ripartire da zero quando si vuole specializzare una classe esistente. Così è possibile acquistare in commercio delle librerie di classi, costituenti una base, che possono essere specializzate a piacimento (si capisce ancora meglio l'interesse per l'azienda che vende le classi di dover proteggere i dati membri con l'incapsulamento, ecc.).
È possibile rappresentare sotto forma di gerarchia di classi, talvolta detta arborescenza di classi, la relazione di prossimità che esiste fra le differenti classi. L'arborescenza comincia da una classe generale detta superclasse (a volte classe di base, classe genitrice, classe ancestrale,classe madre o classe padre, le metafore genealogiche sono numerose). Poi le classi derivate (classe figlia o sotto-classe) diventano sempre più specializzate. Così, si può generalmente esprimere la relazione che lega una classe figlia alla sua classe madre con la frase "è un" (dall'inglese "is a"):
Alcuni linguaggi orientati oggetto, come C++, permettono di fare dell'eredità multipla, il che significa che offrono la possibilità di far ereditare una classe da due superclassi. Così, questa tecnica permette di raggruppare all'interno di una sola stessa classe gli attributi e i metodi di più classi.
.
Foto: © Pixabay.