Sottoclasse (informatica)

Abbozzo
Questa voce sull'argomento programmazione è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia.
Ereditarietà

Nella programmazione orientata agli oggetti, una sottoclasse è una classe che eredita tutte le proprietà da una superclasse, che esse siano oggetti o metodi. Una denominazione alternativa a "sottoclasse" è "classe derivata".

Il termine specifico che indica questo processo mediante il quale le classi figlie o derivate ereditano le proprietà delle classi madri o superclassi è detto ereditarietà.

Si può pensare a una sottoclasse come a un particolare genere della sua superclasse, infatti essa può utilizzare o meno dei metodi e/o attributi, come anche ridefinirli attraverso l'overriding. Per fare due esempi: un Gatto manx (o Gatto dell'isola di Man) è un particolare genere di gatto, un quadrato è un particolare genere di rettangolo.

  • Un gatto ha una pelliccia, quattro zampe e una coda
    • Un gatto manx non ha la coda, ma ha tutte le altre caratteristiche sopra elencate
  • Un rettangolo ha quattro lati, due di lunghezza w {\displaystyle w} e due di lunghezza h {\displaystyle h}
    • Un quadrato ha le stesse caratteristiche di un rettangolo, e, in aggiunta si ha che w {\displaystyle w} = h {\displaystyle h}

Come illustrato da questi esempi, una sottoclasse è una versione più specifica della sua superclasse; vi sono caratteristiche comuni a tutti i gatti, ma, a queste, i gatti manx ne aggiungono una peculiare della loro razza (la mancanza della coda); mentre tutti i rettangoli hanno quattro lati, i quadrati hanno una caratteristica più restrittiva, cioè hanno tutti e quattro i lati della stessa lunghezza.

Non bisogna confondere la relazione che intercorre fra classi e sottoclassi con quella che intercorre fra classi e istanze. Un'istanza della classe Gatto rappresenta un particolare gatto, cioè un oggetto, mentre la classe Gatto manx è ancora una classe, da cui possono essere istanziate tante istanze di particolari gatti manx. E se a un particolare gatto una volpe mangia la coda, questo fatto non lo fa passare nella classe Gatto manx: è semplicemente cambiato quel gatto (quell'istanza di gatto).

Non si deve neanche confondere la relazione che intercorre tra classi e sottoclassi con quella che intercorre fra tipi e sottotipi.

Note

  • Classi derivate, su MSDN Library. URL consultato il 20 febbraio 2014.
  • Ereditarietà e caratteristiche della superclasse (PDF), su DIIT. URL consultato il 29 aprile 2014.

Bibliografia

  • Fabrizia Scorzoni, Informatica Programmazione in Java, Torino, Loescher, 2009, ISBN 978-88-8433-030-7.

Voci correlate

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica