Ciao,
da quello che ho letto le classi astratte non sono istanzanziabili, nel tuo esempio crei un array di due elementi Solido con new, non stai istanziando in questo modo?
Forse mi sfugge un concetto, provo a spiegarmi con un esempio :
se classe B estende (aggiungendo un suo metodo) classe A (che ha suoi metodi, variabili etc), io mi ritrovo che, se istanzio un oggetto di tipo B, ho un qualcosa che comprende tutte le caratteristiche di un tipo A pi� tutto ci� che � definito nel tipo B, quindi vedo un valore aggiunto (sfrutto tutto le caratteristiche di A in pi� aggiungo le caratteristiche implementate in B), � corretta questa cosa? La classe derivata in questo caso � sicuramente pi� ricca della classe padre ?
In questo caso io chiaramente potrei fregarmene di come � scritto il codice dentro classe A, ne sfrutto le caratteristiche "finali" estendendola tramite la mia classe B.
Nelle classi astratte invece, quello che sto cercando di dire, �: se comunque l'astratta padre non la posso istanziare in quanto astratta, dovr� per forza istanziare la derivata dove sono implementati i metodi che nell'astratta sono vuoti, tanto vale istanziare una classe completa di tutto senza derivarla da quella astratta (che non mi da un valore aggiunto). Oppure � una questione di scope/incapsulamento che mi sfugge?
Cosa sfrutto di "utile" della astratta estendendola?

Rispondi quotando