servono dichiarare caratteristiche comuni fra classi di una determinata gerarchia
consiste in una classe da cui non si può creare oggetti ma solo ereditata
modificatore_accesso abstract class NOME
{
//campi
//metodi
- normali
- astratti: modificatore_accesso abstract tipo_valore metodo();
}
la classe derivata deve fornire una implementazione per tutti i metodi astratti dichiarati nella classe genitrice
se così non dovesse essere, anche la sotto-classe deve essere dichiarata come abstract