Si tratta di un caso particolare della generalizzazione (ereditarietà) in cui la classe base è una classe astratta (contiene cioè almeno una funzione membro virtuale pura).
Le classi astratte non vengono usate per instanziare oggetti ma per progettare un metodo di generazione del codice…
vedi esempio generalizzazione
in realtà non esistono oggetti autoveicoli che hanno una targa, un proprietario, ecc. Quindi questa classe è presente solo per poter creare più facilmente nuove classi come auto e camion. Per le regole di invocazione dei metodi vedere polimorfismo