Herança

Tenho que simular um cadastramento de 3 tipos de veículos sem banco de dados usando herança mas quando eu tenho que usar não estou conseguindo entender como eu chamo as classes que eu criei pra aparecer. Fiz uma classe que tem coisas em comuns com esses veículos depois fiz mais separadamento aquilo que somente um possui mas nao consigo fazer a ligação deles, me ajudem!!!

[code](programa Pincipal)

public class Automovel
{

private int ano;
private int modelo;
private String fabricante;
private int placa;

public void setano(int Pano)
{
ano=Pano;
}
public void setmodelo(int Pmodelo)
{
modelo=Pmodelo;
}
public void setfabricante(String Pfabricante)
{
fabricante=Pfabricante;
}
public void setPlaca( int Pplaca)
{
placa=Pplaca;
}
public int getano()
{
return ano;
}
public int getmodelo()
{
return modelo;
}
public String getfabricante()
{
return fabricante;
}
public int getplaca()
{
return placa;
}

}
[/code]

[code]public class Caminhao extends Automovel
{
private int peso;
private int carga;
private int tipo;

public void setpeso(int Ppeso)
{
      peso=Ppeso;
}
public void setcarga(int Pcarga)
{
  carga=Pcarga;
}
public void settipo(int Ptipo)
{
   tipo=Ptipo;
}
    public int getpeso()
    {
return peso;
    }
public int getcarga()
{
return carga;
}
public int tipo()
{
 return tipo;
}

}
[/code]

[code]
public class Van extends Automovel
{
private int capacidade;
private int comb;

public void setcapacidade(int Pcap)
{
      capacidade=Pcap;
}
public void setcomb(int Pcomb)
{
  comb=Pcomb;
}
        public int getcapacidade()
    {
return capacidade;
    }
public int getcomb()
{
return comb;
}
}[/code]

public class Auto extends Automovel { private int comb; private int porta; public void setcomb(int Pcomb) { comb=Pcomb; } public void setporta(int Pporta) { porta=Pporta; } public int getcomb() { return comb; } public int getporta() { return porta; } } [code]public class TestaAuto{

public TestaAuto(){
}

public static void main(String args[])
{Automovel novoAutomovel=new Automovel();
	Caminhao  novoCaminhao=new Caminhao();
	Van novoVan=new Van();
String msg;
	String opcao;

msg="\n Escolha qual opção a ser cadastrada";
msg+="\n 1- Automóvel";
msg+="\n 2- Caminhao";
msg+="\n 3- Van";
msg+="\n 4- sair";

}
Scanner entrada=new Scanner(System.in);

switch (opcao){
case 1:
int anoauto=entrada.nextint();
System.out.println(“Entre com o tipo de combustível:”);
int portaAuto=entrada.nextint();
novoAuto.setporta(portaAuto);
novocomb.setcomb(combAuto);
System.out.print(novoAuto.getano());
System.out.print(novoAuto.getcomb());
System.out.print(novoAuto.getporta());
}
Switch (opcao){
case 2:

int anoCaminhao=entrada.nextint();
System.out.println(“Entre com o peso bruto:”);
int pesoCaminhao=entrada.nextint();
System.out.println("Entre com a carga: ");
int cargaCaminhao=entrada.nextint();
System.out.println("Entre com o tipo: ");
int tipoCaminhao=entrada.nextint();
novoCaminhao.setpeso(pesoCaminhao);
novocarga.setcarga(cargaCaminhao);
novotipo.settipo(tipoCaminhao);
System.out.print(novoCaminhao.getpeso());
System.out.print(novoCaminhao.getcarga());
System.out.print(novoCaminhao.gettipo());
}[/code]

Está um pouco estranho… se eu fosse fazer faria assim:

Criaria uma classe abstrata Veiculo, já que você não vai ter nenhuma instância de Veiculo, e sim das suas subclasses. Nessa classe você coloca os métodos que todos os veículos possuem (getPeso, setCor, getKilometragem, etc)

Depois você cria as classes que são subclasses de Veiculo, como Caminhao, Van, Carroca, Moto, Cart, Triciclo, Bicicleta, etc. Nessas classes você pode colocar métodos específicos de cada uma.

Os objetos que você irá instanciar são das subclasses.