ciao a tutti sto cercando di relaizzare un programma che gestisce un concessionario in breve si devono gestire 3 tipi di mezzi auto moto e veicoli commerciali dopo di che bisogna realizzare ilmain contenete dei metodi particolari che vi descriverò a brave,intanto vi posto le classi che ho relaizzato:

classe generale contenente le info generali sulle vetture in generale

codice:
import java.util.*;
public class Vetture {
	protected String targa;
	protected int costo;
	public Vetture (){
		targa="nd";
		costo=-1;
	}
    public Vetture (String t,int c){
    	targa=t;
    	costo=c;
	   
   }

	
    public String getTarga(){
    	return targa;
    }
    	
    public int getCosto(){
    	return costo;
    }
    	
    public void setTarga(String t){
    	targa=t;
    }
    public void setCosto(int c){
        costo=c;
    }
    public void inserisci() {
    	System.out.print("targa=");
    	Scanner in = new Scanner(System.in);
    	targa=in.next();
    	System.out.print("costo=");
    	costo=in.nextInt();
    }


    public void stampa() {
    	System.out.println("targa="+targa);
    	System.out.println("costo="+costo);
    	
    }


    }
classe automobile e sottoclasse optional

codice:
import java.util.*;
public class Automobile extends Vetture {
protected String marca;
protected int cilindrata;
 public Automobile(){
	super();
	marca="";
	cilindrata=-1;
	
 }
	public Automobile (String t,int c,String m,int k){
		super(t,c);
		marca=m;
		cilindrata=k;
		
	}
	public String getMarca(){
    	return marca;
    }
	public int getCilinddrata(){
    	return cilindrata;
    }
	public void setMarca(String m){
    	marca=m;
    }
    public void setCilindrata(int k){
    	cilindrata=k;
    }
    public void inserisci() {
    	super.inserisci();
        System.out.print("marca=");
    	Scanner in = new Scanner(System.in);
    	marca=in.next();
    	 System.out.print("cilindrata=");
     	cilindrata=in.nextInt();
    	
    	
    	
      }
    public void stampa() {
    	super.stampa();
    	System.out.println("marca="+marca);
    	System.out.println("cilindrata="+cilindrata);
    	
    }
}
sottoclasse di automobile

codice:
import java.util.*;
public class Optional extends Automobile {
	private int codice;
	private String nome;
	private int prezzo;
	public Optional (){
		super();
		codice=-1;
		nome="";
		prezzo=-1;
		
	}
	public Optional (String t,int c,String m,int k,int cod,String n,int p){
		super(t,c,m,k);
		codice=cod;
		nome=n;
		prezzo=p;
		
		
	}
	public int getCodice(){
    	return codice;
    }
	public String getNome(){
    	return nome;
    }
	public int getPrezzo(){
    	return prezzo;
    }
	
	
	
	public void setCodice(int cod){
    	codice=cod;
    }
    public void setNome(String n){
    	nome=n;
    }
    public void setPrezzo(int p){
    	prezzo=p;
    }
    
    public void inserisci() {
    	super.inserisci();
        System.out.print("codice=");
    	Scanner in = new Scanner(System.in);
    	codice=in.nextInt();
    	 System.out.print("nome=");
     	nome=in.next();
     	 System.out.print("prezzo=");
      	prezzo=in.nextInt();
    	
    	
      }
    public void stampa() {
    	super.stampa();
    	System.out.println("codice="+codice);
    	System.out.println("nome="+nome);
    	System.out.println("prezzo="+prezzo);
    }
	
}
classe motocicletta

codice:
import java.util.*;
public class Motocicletta extends Vetture{
	private int motore;
	public Motocicletta() {
		super();
		motore=-1;
	}
	
	public Motocicletta (String t,int c,int m){
		super(t,c);
		motore=m;
		
	}
	public int getMotore(){
    	return motore;
    }
	
   public void setMotore(int m){
    	motore=m;
    }
 	
	 public void inserisci() {
	    	super.inserisci();
	    	Scanner in = new Scanner(System.in);
	    	
	    	 System.out.print("tempi motore=");
	     	motore=in.nextInt();
	     	while (motore<2||motore>4||motore==3){
	     		System.out.println("il motore può essere di 2 o 4 tempi");
	     		System.out.print("tempi motore=");
		     	motore=in.nextInt();
	     		
	     	}
	    	
	      }
	    public void stampa() {
	    	super.stampa();
	    	
	    	System.out.println("tempi motore="+motore);
	    	
	    }
in fine veicolo commerciale

codice:
import java.util.*;

public class VeicoloCommerciale extends Vetture {
	private int portata;
	public VeicoloCommerciale (){
		super();
		portata=-1;
	}
    public VeicoloCommerciale (String t,int c,int p){
    	super(t,c);
    	portata=p;
    }
    public int getPortata(){
    	return portata;
    }
    	
    public void setPortata(int p){
    	portata=p;
    }
    public void inserisci() {
    	super.inserisci();
        System.out.print("portata=");
    	Scanner in = new Scanner(System.in);
    	portata=in.nextInt();
      }
    public void stampa() {
    	super.stampa();
    	System.out.println("portata="+portata);
    }
}
ora viene il bello scrivere un metodo che, data un’auto, restituisca il numero di optional di cui `e dotata

codice:
public class Test {
    public int Restituisci_Opt()
	
	public static void main(String[] args) {
    	VeicoloCommerciale ape=new VeicoloCommerciale();
    	Automobile zip=new Automobile("dd765as",8000,"fiat",1200);
        ape.inserisci(); 
        System.out.println("ape");
    	ape.stampa(); 
    	System.out.println("zip");
    	zip.stampa();
    	Optional g=new Optional();
    	System.out.println("opt1");
    	g.inserisci();
        System.out.println("");
    	g.stampa();
    	System.out.println("opt2");
    	Optional h=new Optional();
    	h.stampa();	

	Motocicletta a=new Motocicletta();
	a.inserisci();
	a.stampa();
	
	}
}
e qui ho già qualche dubbio....voi come lo realizzereste???