Programmazione degli Elaboratori

Ereditarietà

L' ereditarietà è la caratteristica di un linguaggio orientato agli oggetti per cui gli oggetti di una classe ereditano tutte le proprietà (attributi, metodi, ecc.) definite per gli oggetti delle classi di livello superiore. Entra quindi in gioco la nozione di sottoclasse che equivale a un a sorta di sottotipo. Per esempio la classe delle automobili FIAT può essere vista come una sottoclasse della classe automobili. Per stabilire se una classe è sottoclasse si utilizza il principio di sostituibilità di Liskov:

B è un sottotipo di A se e solo se per ogni programma che usa oggetti di classe A posso usare al loro posto oggetti di classe B senza modificare il suo comportamento logico.

Bisogna osservare che nell' ereditarietà convivono in realtà due concetti diversi:

L' ereditarietà di realizzazione è essenzialmente un meccanismo di riuso del software: si riutilizza il codice definito nelle classi genitrici.

L' ereditarietà di interfaccia, invece, è un meccanismo di compatibilità fra tipi e il suo scopo è quello di consentire il polimorfismo per inclusione.

Quando una classe ha più di una classe genitrice, si parla di ereditarietà multipla. In linea di principio non c'`e alcuna ragione per cui una classe debba avere una sola superclasse. In realtà però, mentre l' ereditarietà multipla di interfacce non pone particolari problemi, poiché la sua correttezza può essere verificata staticamente durante la compilazione, la stessa cosa non si può dire della fusione di codice provenienti da più classi genitrici (in quanto questo codice è nascosto, e quindi non può essere verificata la sua correttezza). Questo è il motivo per cui, mentre il C++ ammette entrambi gli aspetti dell'ereditarietà multipla, Java ammetta l' ereditarità multipla di interfacce ma la vieta per le classi.























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.