Cosa significa “ereditarietà multipla”?

L’ereditarietà multipla, quando si parla di linguaggi di programmazione orientata agli oggetti (OOP), è un termine che si riferisce a una classe che eredita funzionalità da più di una classe genitore. Il termine non può essere compreso appieno senza capire cosa sia una classe. Una definizione molto breve di una classe è un insieme di istruzioni di programmazione o codice in un linguaggio OOP che descrive ed è l’essenza di un’entità. Le classi definiscono tutte le proprietà di un’entità e contengono tutti i metodi necessari per manipolare tali proprietà.

A seconda del programma che viene codificato, potrebbe essere necessario scrivere molte classi che hanno cose in comune ma devono rimanere entità distinte. È qui che entra in gioco l’ereditarietà multipla. Ad esempio, i progressi tecnologici che consentirebbero la costruzione di un sottomarino che potrebbe volare come un aereo o un aereo che potrebbe immergersi come un sottomarino produrrebbe un prodotto ibrido. Quell’ibrido avrebbe alcune delle stesse proprietà di un aeroplano e alcune delle proprietà di un sottomarino, ma sarebbe un prodotto o un’entità unica. L’ereditarietà multipla consentirebbe facilmente all’ibrido di ereditare funzionalità da una classe di aeroplani e funzionalità da una classe di sottomarini allo stesso tempo senza copiare il codice.

Un altro modo per spiegare l’ereditarietà multipla consiste nel dire che consente a più di una classe di fungere da base per altre classi. Ci sono vantaggi nell’usare l’ereditarietà multipla invece di copiare semplicemente il codice da una o più classi a un’altra. I bug nei programmi spesso richiedono tempo per essere scoperti, ma quando vengono scoperti, devono essere corretti il ​​prima possibile. Se il codice contenente bug viene copiato in più classi, i programmatori devono applicare la stessa correzione a ogni copia del codice. Quando viene impiegata l’ereditarietà multipla, tuttavia, dovrebbe lavorare solo con il codice della classe originale da cui tutte le sottoclassi ereditano la funzionalità.

Non tutti i linguaggi di programmazione supportano l’ereditarietà multipla, anche se supportano l’orientamento agli oggetti. Si potrebbe sostenere che alcune versioni di alcuni linguaggi lo supportino quando in realtà supportano l’ereditarietà da solo due classi. Le classi da cui altre classi ereditano la funzionalità sono spesso chiamate classi “genitrici” o “super classi” e le classi che ereditano sono chiamate classi “figlie” o “sottoclassi”. Si consiglia vivamente ai programmatori interessati a lavorare con le classi in questo modo di acquisire prima una solida conoscenza delle basi delle classi prima di tentare di sfruttare il potere dell’ereditarietà multipla, poiché vengono trasmessi errori o pratiche di codifica scadenti nella classe madre alla classe bambino.