questo è un problema di progettazione generale (non riguarda java in particolare, ma la programmazione ad oggetti).
Ci sono delle considerazioni da fare: ognuno fa gli algoritmi secondo le sue abitudini e i suoi punti di vista, ma in generale qui si vuole mettere in evidenza la tua capacità di comprensione del problema, la capacità di mettere in pratica i concetti spiegati dal prof. Inoltre, per come è stato dato l'esercizio, è ovvio che mira a farti usare i principi di ereditarietà tipici di un linguaggio di programmazione ad oggetti. Da questo è parecchi punti in meno sbagliare concettualizzazione se non sbagliare l'intero esame, visto che alla fine dimostra che non hai capito molto di quello che ha spiegato.
Tecnicamente anche per i biglietti aerei puoi avere una validità (ci sono biglietti open in cui la data la metti all'ultimo o i carnet in cui usufruisci del volo quando ti pare), quindi in generale la validità è una caratteristica del biglietto in sé e non dell'aereo, ma può in questo caso andare bene.
Ricorda che derivando le due classi devi caratterizzarle con gli attributi propri e definire comportamenti differenti per i vari metodi (che è ciò che si vuole mettere in evidenza con il progetto).