Originariamente inviato da valia
ma se tu fai
codice:
Veicolo v = new Veicolo(); 
//dopo un po'
Macchina fiat = new Veicolo();
A rigor di logica Macchina dovrebbe essere una sottoclasse di Veicolo, quindi così facendo ottieni un errore di compilazione, a prescindere dal tipo di ereditarietà (inteso come relazione) applicata.