KuroKami69 ha scritto:
il motivo per cui mi da quegli errori è quello che ho supposto io?
Se in Veicolo hai un costruttore
public Veicolo(String marca, String modello, String tipologia, int prezzo, int cavalli, int massaVuoto, int cilindrata, int consumo)
NOTA bene i parametri (sono 8 ).
Mi spieghi come potresti passargli dei dati dalla sottoclasse Automobili con una invocazione:
super (stato, marca, modello, tipologia, km, annoImmatricolazione, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambio, marce, motore, colore, cilindrata, cilindri, consumo);
??
sono 19 argomenti (!!) e oltretutto alcuni come annoImmatricolazione non li hai lì in Automobili da nessuna parte!!! Quindi da dove pensi possano saltare fuori?? Nota che nella invocazione super() NON PUOI passare dei campi che sono nella super-classe. Anche se sono protected!
E comunque tutte quelle logiche di test e di numeri casuali NON VANNO messe in queste classi.
In Automobili:
int tmp = rnd.nextInt(5);
if (tipologia.equals("supersport")) nPortiere = 2;
while (tmp < 2 || tmp == 4) tmp = rnd.nextInt(6);
nPortiere = tmp;
NO!!!
In Veicolo:
if (marca.equals("tesla") || marca.equals("brammo") || marca.equals("E-Tropolis") || marca.equals("Vectrix")) motore = "elettrico";
int tmp = rnd.nextInt(6);
String[] crb = {"Diesel", "Benzina", "GPL", "Metano", "Ibrida", "Elettrica"};
motore = crb[tmp];
return motore;
NO!!!
Stai completamente "ravanando" queste classi! E questo perché, lo ripeto, NON hai sufficienti basi su Java.
Una soluzione c'è, per fortuna. Si chiama: studiare