Meios de Transportes

Pessoal, estou tentando resolver um exercício e encontrei algumas dificuldades. Gostaria de contar com a colaboração de vocês, dicas e etc. Qualquer ajuda é bem vinda para a solucionar o mesmo.

Desde já agradeço.

Segue abaixo as indicações do exercício:

1 - Criar uma classe: Meios de Transporte com os seguintes atributos:
(marca, modelo, ano de fabricação, potência do motor, quantidade de rodas).

2 - Criar as seguintes sub classes de Meios de Transporte:

2.1 - Moto - com os atributos tamanhos do Aro e cilindradas.
2.2 ? Ônibus - com o atributo quantidade de passageiros.
2.3 ? Caminhão - Tara / Quantidade de Eixos.
2.4 ? Trem - quantidade de vagões.
2.5 ? Avião - tipo de propulsão autonomia.

=====================================================================

A - Todos os atributos deverão ser privativos. Cada classe devera ter pelo menos 2 construtores.

B - Criar uma classe que deverá permitir ao usuário escolher o tipo de meio de transporte que
deseja criar e a quantidade de cada um.

C - O programa devera ainda exibir os valores atribuídos e através de uma variável estática informar
quantos meios de transporte foram criados.

D - O programa devera verificar se o usuário deseja cadastrar mais meios de transporte e em caso negativos
será encerrado.

=====================================================================

public class MeiosDeTransporte 
{
	private String marca, modelo;
	private int anoFabricacao, qtdeRodas;
	private float potenciaMotor;
	
	public MeiosDeTransporte ()//Construtor padrão
	{
	}
	
	public MeiosDeTransporte(String marca, String modelo, int anoFabricacao, 
								int qtdeRodas, float potenciaMotor)
	{
		this.marca = marca;
		this.modelo = modelo;
		this.anoFabricacao = anoFabricacao;
		this.qtdeRodas = qtdeRodas;
		this.potenciaMotor = potenciaMotor;
	}
// Set e Get Marca	
	public void setMarca(String marca)
	{
		this.marca=marca;
	}
	public String getMarca()
	{
		return marca;		
	}
//	 Set e Get Modelo
	public void setModelo(String mod)
	{
		this.marca = modelo;
	}
	public String getModelo(){
		return modelo;		
	}
//	 Set e Get Ano de Fabricacao	
	public void setAnoFabricacao(int anoFabricacao)
	{
		this.anoFabricacao = anoFabricacao;
	}
	public int getAnoFabricacao()
	{
		return anoFabricacao;		
	}
//	 Set e Get QtdeRodas	
	public void setQtdeRodas (int qtdeRodas)
	{
		this.qtdeRodas = qtdeRodas;
	}	
	public int getQtdeRodas ()
	{
		return qtdeRodas;
	}
//	 Set e Get Potencia do Motor	
	public void setPotenciaMotor (float potenciaMotor)
	{
		this.potenciaMotor = potenciaMotor;
	}	
	public float getPotenciaMotor()
	{
		return potenciaMotor;
	}
}
//Início Sub Classe Moto
class Moto extends MeiosDeTransporte 
{
	int tamanhoAro;
	int cilindradas;
//	 Set e Get Tamanho Aro	
	public void setTamanhoAro (int tamanhoAro)
	{
		this.tamanhoAro = tamanhoAro;
	}
	public float getTamanhoAro()
	{
		return tamanhoAro;
	}
//	 Set e Get Cilindradas	
	public void setCilindradas (int cilindradas)
	{
		this.cilindradas = cilindradas;
	}
	public float getCilindradas()
	{
		return cilindradas;
	}
	
	public Moto()//construtor padrão
	{
	}
	public Moto (int tamanhoAro, int cilindradas, String marca, String modelo,
					int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.tamanhoAro = tamanhoAro;
		this.cilindradas = cilindradas;
	}
}
//Fim sub classe Moto

//Inicio sub classe Onibus
class Onibus extends MeiosDeTransporte // Sub Classe
{
	int qtdePassageiros;	
//	 Set e Get Qtde Passageiros	
	public void setQtdePassageiros (int qtdePassageiros)
	{
		this.qtdePassageiros = qtdePassageiros;
	}
	public int getQtdePassageiros()
	{
		return qtdePassageiros;
	}	
	
	public Onibus()//construtor padrão
	{
	}
	
	public Onibus (int qtdePassageiros, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.qtdePassageiros = qtdePassageiros;
	}
}
//Fim sub classe Onibus

//Inicio sub classe Caminhao
class Caminhao extends MeiosDeTransporte // Sub Classe
{
	float cilindradas;
	int tara;
//	 Set e Get Cilindradas	
	public void setCilindradas (float cilindradas)
	{
		this.cilindradas = cilindradas;
	}
	public float getCilindradas()
	{
		return cilindradas;
	}
//	 Set e Get Tara	
	public void setTara (int tara)
	{
		this.tara = tara;
	}
	public int getTara()
	{
		return tara;
	}
	
	public Caminhao()//construtor padrão
	{
	}
	
	public Caminhao (float cilindradas, int tara, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.cilindradas = cilindradas;
		this.tara = tara;
	}
}
//Fim sub classe Caminhao

//Inicio sub classe Trem
class Trem extends MeiosDeTransporte // Sub Classe
{
	int qtdeVagoes;	
//	 Set e Get Qtde Vagoes	
	public void setQtdeVagoes (int qtdeVagoes)
	{
		this.qtdeVagoes = qtdeVagoes;
	}
	public int getQtdeVagoes()
	{
		return qtdeVagoes;
	}	
		
	public Trem()//construtor padrão
	{
	}
	
	public Trem (int qtdeVagoes, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.qtdeVagoes = qtdeVagoes;
	}
}
//Fim sub classe Trem

//Inicio sub classe Aviao
class Aviao extends MeiosDeTransporte // Sub Classe
{
	float propulsao;
	float autonomia;
//	 Set e Get Propulsao	
	public void setPropulsao (float propulsao)
	{
		this.propulsao = propulsao;
	}	
	public float getPropulsao()
	{
		return propulsao;
	}
//	 Set e Get Autonomia	
	public void setAutonomia (float autonomia)
	{
		this.autonomia = autonomia;
	}	
	public float getAutonomia()
	{
		return autonomia;
	}		
 
	public Aviao()//construtor padrão
	{
	}
	
	public Aviao (float propulsao, float autonomia, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.propulsao = propulsao;
		this.autonomia = autonomia;
	}
//	Fim sub classe Aviao		
}
import javax.swing.*;
public class CriaTransporte 
{
	public static void main (String arg[])
	{		
		int qtd = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Transportes que deseja cadastrar"));
		
		Moto ListMoto [] = new Moto [qtd];
		for (int i=0; i<qtd; i++)
		{
// 			Super Classe
			String marca = JOptionPane.showInputDialog(null,"Digite a marca");
			String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
			int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
			int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
			float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//			Sub-classe
			int tamanhoAro = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o tamnho do Aro"));
			int cilindradas = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a cilindrada"));

// 			Super Classe
			ListMoto[i] = new Moto();
			ListMoto[i].setMarca(marca);
			ListMoto[i].setModelo(modelo);
			ListMoto[i].setAnoFabricacao(anoFabricacao);
			ListMoto[i].setQtdeRodas(qtdeRodas);
			ListMoto[i].setPotenciaMotor(potenciaMotor);
//			Sub-classe	
			ListMoto[i].setTamanhoAro(tamanhoAro);
			ListMoto[i].setCilindradas(cilindradas);
			
		}
				
		for (int i=0; i><qtd; i++)
		{
			JOptionPane.showMessageDialog(null,
					"  marca " + ListMoto[i].getMarca()+ 
					" modelo " + ListMoto[i].getModelo()+ 
					" foi fabricado no ano " + ListMoto[i].getAnoFabricacao()+ 
					" nº de Rodas: " + ListMoto[i].getQtdeRodas()+ 
					" Potencia do Motor: " + ListMoto[i].getPotenciaMotor()+ 
					" Aro tamanho: " + ListMoto[i].getTamanhoAro() +
					" Cilindradas: " + ListMoto[i].getCilindradas());	
		}
	}
}

======================================================================

De acordo com o enunciado, eu estou na direção certa? Estou meio confuso de como vou fazer para imprimir o meio de transporte e seus atributos. Quem puder auxliar com dicas eu agradeço.

Obrigado pela atenção!

[ ]'s

>

Pelo que vi a parte de Herança está correto sim. Vi que está com duvidas em como criar o transporte, sendo que podem ser diferentes utlizando classes diferentes, e vi também que você apenas desenvolveu o meio de transporte MOTO, tente especificar melhor qual é a sua dúvida…

Até ++++ :wink:

Eu prefiro abusar de interfaces,separa melhor o comportamento das coisas, mas considerando o uso de classes, tá no caminho certo sim…
Para exibir os componentes, acho melhor usar um JTextArea.
Veja:
http://java.sun.com/docs/books/tutorial/uiswing/components/textarea.html

E quando vc for cadastrar um novo meio de transporte(usando um JOptionPane perguntando S/N por exemplo), é só por uma chamada a System.exit(0); se não houver nada a ser cadastrado.

Engraçado como num exercicio tão simples se demonstra que quem escreveu o enunciado não sabe o que é abstração… Meios de transporte nem sempre têm rodas… (ex:Barco)

A classe deve-se chamar MeioDeTransporte de não MeiosDeTransporte.
Falta diversificar o tipo de meios que o programa de teste cria. tem que perguntar ao usuário que tipo de meio ele quer, e depois perguntar os dados para esse tipo (sendo que cada tipo tem dados diferentes)
Esta tarefa pode ser inclusa noutra classe se necessário

Pô Sérgio não esculacha! :lol:
Isso deve ser exercício de faculdade/escola técnica…a maioria dos professores passam longe de AOO.
Se fosse para ser preciso o cara deveria ter Meio de Transporte- Não-motorizado(ou até Animal) ou motorizado por exemplo.Tb poderíamos terVeículo (com os respectivos Veículo Aquático,Veículo Terrestre,Veículo Anfíbio)…vai longe! :smiley:

Pessoal, desculpem por não saber o tanto que provavelmente vocês sabem. Creio que se eu não tivesse dificuldade, não estaria pedindo auxilio.

Realmente é um exercício de faculdade e dependendo do nível da faculdade, vcs já devem imaginar o nível do ensino.

A dúvida espefica no momento é como seria a forma mais prática de imprimir os transportes criados.
Os demais tranportes eu vou criar aqui, criei só a moto para testar.

Obrigado!

Como sempre, e isto é uma regra geral, a forma de trasnformar um objeto num string é usando um Formater
Ou seja, vc implementa um formatador que lê o objeto e cria um string. Depois vc imprime o string

MeioDeTransporte m = ...
System.out.println((new MeioDeTransporteFormater.format(m)));

Esta é a forma geral. É a mais flexivel , etc etc…

A mais simples é apenas implementar o método toString() de cada um dos tipos de transporte. Desta forma cada um pode colocar as informações comuns mas tb as informações especificas. usando herança vc pode implementar o toString() com as informações comuns nas classes pais e os filhos so acrescentam as suas inforações próprias.

public void String toString(){
     return (new StringBuilder()).append("bla bla bla").append(variavel).toString(); 
}

Para imprimir

MeioDeTransporte m = ...
System.out.println(m.toString());

Claro que vc pode implementar o toString() e depois implementar um formatador simples que apenas chama toString() internamente e usar o formatador. Isto é bom por dois motivos , o toString() é especialmente usado para debug e o formatador pode ser alterado se for necessário, por exemplo torná-lo internacionalizável (por exemplo. ou seja, ele tem mais funções). Como é o formatador que é usado no codigo, não terá que mexer em nada.

Bom, isto é o caso geral. No seu caso particular implementar toString() e usar-lo para imprimir é mais do que suficiente.

Cara onde vc estuda? Meu professor passou esse trabalho pra mim entregar hoje, acabei de terminar. Abaixo tem a classe CriaTransportes

[quote][code]
import javax.swing.*;
public class CriarTransportes{
public static void main(String args[]){
int aux=1;
int QtdMoto = 0;
int QtdOnibus = 0;
int QtdCaminhao = 0;
int QtdTrem = 0;
int QtdAviao = 0;
int QtdTranportes = 0;
int QtdCad;

	while(aux==1){
 	int QtdTransp = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o número da opção correnspondente do meio de transporte\n que deseja cadastrar:" +
			"\n 1 - Moto \n 2 - Ônibus \n 3 - Caminhão \n 4 - Trem \n 5 - Avião"));
	
	switch (QtdTransp){
	case 1:
		QtdMoto = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantas Motos você deseja cadastrar:"));
		aux=0;
		break;			
	case 2:
		QtdOnibus = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantos Ônibus você deseja cadastrar:"));
		aux=0;
		break;
	case 3:
		QtdCaminhao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantos Caminhões você deseja cadastrar:"));
		aux=0;
		break;
	case 4:
		QtdTrem = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantos Trens você deseja cadastrar:"));
		aux=0;
		break;
	case 5:
		QtdAviao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantos Aviãos você deseja cadastrar:"));
		aux=0;
		break;
	default:
		JOptionPane.showMessageDialog(null,"Opção selecionada invalida, porfavor selecione corretamente o \nMeio de Transporte a cadastrar:");
		aux=1;
	}			
	
	if(QtdMoto!=0){
		Moto CadMoto[] = new Moto[QtdMoto];		
		for(int i=0; i&lt=CadMoto.length; i++){			
			CadMoto[i] = new Moto();
			CadMoto[i].marca =  JOptionPane.showInputDialog(null,"Digite a marca da " + (i+1) + "ª moto à cadastrar.\n");
			CadMoto[i].modelo = JOptionPane.showInputDialog(null,"Digite o modelo da " + (i+1) + "ª moto à cadastrar.\n");
			CadMoto[i].ano =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano da " + (i+1) + "ª moto à cadastrar.\n"));
			CadMoto[i].potencia =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a potência da " + (i+1) + "ª moto à cadastrar.\n"));
			CadMoto[i].rodas =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantas rodas tem a " + (i+1) + "ª moto à cadastrar.\n"));
			CadMoto[i].aro =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o aro da " + (i+1) + "ª moto à cadastrar.\n"));
			CadMoto[i].cilindradas =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a cilindradas da " + (i+1) + "ª moto à cadastrar.\n"));
		}
	}
	else{
		if(QtdOnibus!=0){
			Onibus CadOnibus[] = new Onibus[QtdOnibus];		
			for(int i=0; i&lt=CadOnibus.length; i++){			
				CadOnibus[i] = new Onibus();
				CadOnibus[i].marca =  JOptionPane.showInputDialog(null,"Digite a marca do " + (i+1) + "º ônibus à cadastrar.\n");
				CadOnibus[i].modelo = JOptionPane.showInputDialog(null,"Digite o modelo do " + (i+1) + "º ônibus à cadastrar.\n");
				CadOnibus[i].ano =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano do " + (i+1) + "º ônibus à cadastrar.\n"));
				CadOnibus[i].potencia =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a potência do " + (i+1) + "º ônibus à cadastrar.\n"));
				CadOnibus[i].rodas =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantas rodas tem o " + (i+1) + "º ônibus à cadastrar.\n"));
				CadOnibus[i].QtdPassageiro =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de passageiros do " + (i+1) + "º ônibus à cadastrar.\n"));					
			}
		}
		else{
			if(QtdCaminhao!=0){
				Caminhao CadCaminhao[] = new Caminhao[QtdCaminhao];		
				for(int i=0; i&lt=CadCaminhao.length; i++){			
					CadCaminhao[i] = new Caminhao();
					CadCaminhao[i].marca =  JOptionPane.showInputDialog(null,"Digite a marca do " + (i+1) + "º caminhão à cadastrar.\n");
					CadCaminhao[i].modelo = JOptionPane.showInputDialog(null,"Digite o modelo do " + (i+1) + "º caminhão à cadastrar.\n");
					CadCaminhao[i].ano =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano do " + (i+1) + "º caminhão à cadastrar.\n"));
					CadCaminhao[i].potencia =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a potência do " + (i+1) + "º caminhão à cadastrar.\n"));
					CadCaminhao[i].rodas =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantas rodas tem o " + (i+1) + "º caminhão à cadastrar.\n"));
					CadCaminhao[i].Peso =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o peso suportado pelo " + (i+1) + "º caminhão à cadastrar.\n"));
					CadCaminhao[i].Eixo =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de eixos do " + (i+1) + "º caminhão à cadastrar.\n"));
				}
			}
			else{
				if(QtdTrem!=0){
					Trem CadTrem[] = new Trem[QtdTrem];		
					for(int i=0; i&lt=CadTrem.length; i++){			
						CadTrem[i] = new Trem();
						CadTrem[i].marca =  JOptionPane.showInputDialog(null,"Digite a marca do " + (i+1) + "º trem à cadastrar.\n");
						CadTrem[i].modelo = JOptionPane.showInputDialog(null,"Digite o modelo do " + (i+1) + "º trem à cadastrar.\n");
						CadTrem[i].ano =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano do " + (i+1) + "º trem à cadastrar.\n"));
						CadTrem[i].potencia =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a potência do " + (i+1) + "º trem à cadastrar.\n"));
						CadTrem[i].rodas =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantas rodas tem o " + (i+1) + "º trem à cadastrar.\n"));
						CadTrem[i].QtdVagao =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de vagões do " + (i+1) + "º trem à cadastrar.\n"));							
					}
				}
				else{
					if(QtdAviao!=0){
						Aviao CadAviao[] = new Aviao[QtdAviao];		
						for(int i=0; i&lt=CadAviao.length; i++){			
							CadAviao[i] = new Aviao();
							CadAviao[i].marca =  JOptionPane.showInputDialog(null,"Digite a marca do " + (i+1) + "º avião à cadastrar.\n");
							CadAviao[i].modelo = JOptionPane.showInputDialog(null,"Digite o modelo do " + (i+1) + "º avião à cadastrar.\n");
							CadAviao[i].ano =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano do " + (i+1) + "º avião à cadastrar.\n"));
							CadAviao[i].potencia =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a potência do " + (i+1) + "º avião à cadastrar.\n"));
							CadAviao[i].rodas =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite quantas rodas tem o " + (i+1) + "º avião à cadastrar.\n"));
							CadAviao[i].Propulsao =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a propulsão do " + (i+1) + "º avião à cadastrar.\n"));
							CadAviao[i].Autonomia =  Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a autonomia do " + (i+1) + "º avião à cadastrar.\n"));
						}
					}
				}
			}
		}
	}
			
	if(QtdMoto!=0){		
		for(int i=0; i&lt=CadMoto.length; i++){		
			System.out.println("CADASTRO DE MOTOS:");
			System.out.println("Marca:" + CadMoto[i].marca);
			System.out.println("Modelo:" + CadMoto[i].modelo);
			System.out.println("Ano:" + CadMoto[i].ano);
			System.out.println("Potência:" + CadMoto[i].potencia);
			System.out.println("Rodas:" + CadMoto[i].rodas);
			System.out.println("Aro:" + CadMoto[i].aro);
			System.out.println("Cilindradas:" + CadMoto[i].cilindradas);			
		}
	}
	else{
		if(QtdOnibus!=0){
			for(int i=0; i&lt=CadOnibus.length; i++){			
				System.out.println("CADASTRO DE MOTOS:");
				System.out.println("Marca:" + CadOnibus[i].marca);
				System.out.println("Modelo:" + CadOnibus[i].modelo);
				System.out.println("Ano:" + CadOnibus[i].ano);
				System.out.println("Potência:" + CadOnibus[i].potencia);
				System.out.println("Rodas:" + CadOnibus[i].rodas);
				System.out.println("Qtd de Passageiros:" + CadOnibus[i].QtdPassageiros);										
			}
		}
		else{
			if(QtdCaminhao!=0){					
				for(int i=0; i&lt=CadCaminhao.length; i++){			
					System.out.println("CADASTRO DE MOTOS:");
					System.out.println("Marca:" + CadCaminhao[i].marca);
					System.out.println("Modelo:" + CadCaminhao[i].modelo);
					System.out.println("Ano:" + CadCaminhao[i].ano);
					System.out.println("Potência:" + CadCaminhao[i].potencia);
					System.out.println("Rodas:" + CadCaminhao[i].rodas);
					System.out.println("Peso:" + CadCaminhao[i].Peso);
					System.out.println("Eixo:" + CadCaminhao[i].Eixo);
				}
			}
			else{
				if(QtdTrem!=0){		
					for(int i=0; i&lt=CadTrem.length; i++){			
						System.out.println("CADASTRO DE MOTOS:");
						System.out.println("Marca:" + CadTrem[i].marca);
						System.out.println("Modelo:" + CadTrem[i].modelo);
						System.out.println("Ano:" + CadTrem[i].ano);
						System.out.println("Potência:" + CadTrem[i].potencia);
						System.out.println("Rodas:" + CadTrem[i].rodas);
						System.out.println("Qtd de Vagão:" + CadTrem[i].QtdVagao);													
					}
				}
				else{
					if(QtdAviao!=0){							
						for(int i=0; i&lt=CadAviao.length; i++){			
							System.out.println("CADASTRO DE MOTOS:");
							System.out.println("Marca:" + CadAviao[i].marca);
							System.out.println("Modelo:" + CadAviao[i].modelo);
							System.out.println("Ano:" + CadAviao[i].ano);
							System.out.println("Potência:" + CadAviao[i].potencia);
							System.out.println("Rodas:" + CadAviao[i].rodas);
							System.out.println("Propulsão:" + CadAviao[i].Propulsão);
							System.out.println("Autonomia:" + CadAviao[i].Autonomia);
						}
					}
				}
			}
		}
	}
	QtdTranportes += 1;
	QtdCad = QtdMoto + QtdOnibus + QtdCaminhao + QtdTrem + QtdAviao;
	int opcao = JOptionPane.showConfirmDialog(null,   
            "Deseja cadastrar mais um Meio de Transporte", "Sim ou não?", JOptionPane.YES_NO_OPTION);
	if(opcao == JOptionPane.YES_NO_OPTION){
		aux=1;
		QtdCad = 1;
		
	}
	}		
}

}
[/code][/quote]

Pessoal obrigado pelas dicas.

Adrianospk eu estudo na Uniban CL, mas estava tentando solucionar este exercício juntamente com um amigo que estuda na Uniban MR.

Valeu pelo contribuição do código.

Vou adicionar abaixo mais uma forma de resolver o exercício.

public class MeioDeTransporte 
{
	private String marca, modelo;
	private int anoFabricacao, qtdeRodas;
	private float potenciaMotor;
	
	public MeioDeTransporte ()//Construtor padrão
	{
	}
	
	public MeioDeTransporte(String marca, String modelo, int anoFabricacao, 
								int qtdeRodas, float potenciaMotor)
	{
		this.marca = marca;
		this.modelo = modelo;
		this.anoFabricacao = anoFabricacao;
		this.qtdeRodas = qtdeRodas;
		this.potenciaMotor = potenciaMotor;
	}
// Set e Get Marca	
	public void setMarca(String marca)
	{
		this.marca=marca;
	}
	public String getMarca()
	{
		return marca;		
	}
//	 Set e Get Modelo
	public void setModelo(String modelo)
	{
		this.modelo = modelo;
	}
	public String getModelo(){
		return modelo;		
	}
//	 Set e Get Ano de Fabricacao	
	public void setAnoFabricacao(int anoFabricacao)
	{
		this.anoFabricacao = anoFabricacao;
	}
	public int getAnoFabricacao()
	{
		return anoFabricacao;		
	}
//	 Set e Get QtdeRodas	
	public void setQtdeRodas (int qtdeRodas)
	{
		this.qtdeRodas = qtdeRodas;
	}	
	public int getQtdeRodas ()
	{
		return qtdeRodas;
	}
//	 Set e Get Potencia do Motor	
	public void setPotenciaMotor (float potenciaMotor)
	{
		this.potenciaMotor = potenciaMotor;
	}	
	public float getPotenciaMotor()
	{
		return potenciaMotor;
	}
}
//Início Sub Classe Moto
class Moto extends MeioDeTransporte 
{
	int tamanhoAro;
	int cilindradas;
//	 Set e Get Tamanho Aro	
	public void setTamanhoAro (int tamanhoAro)
	{
		this.tamanhoAro = tamanhoAro;
	}
	public float getTamanhoAro()
	{
		return tamanhoAro;
	}
//	 Set e Get Cilindradas	
	public void setCilindradas (int cilindradas)
	{
		this.cilindradas = cilindradas;
	}
	public float getCilindradas()
	{
		return cilindradas;
	}
	
	public Moto()//construtor padrão
	{
	}
	public Moto (int tamanhoAro, int cilindradas, String marca, String modelo,
					int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.tamanhoAro = tamanhoAro;
		this.cilindradas = cilindradas;
	}
}
//Fim sub classe Moto

//Inicio sub classe Onibus
class Onibus extends MeioDeTransporte // Sub Classe
{
	int qtdePassageiros;	
//	 Set e Get Qtde Passageiros	
	public void setQtdePassageiros (int qtdePassageiros)
	{
		this.qtdePassageiros = qtdePassageiros;
	}
	public int getQtdePassageiros()
	{
		return qtdePassageiros;
	}	
	
	public Onibus()//construtor padrão
	{
	}
	
	public Onibus (int qtdePassageiros, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.qtdePassageiros = qtdePassageiros;
	}
}
//Fim sub classe Onibus

//Inicio sub classe Caminhao
class Caminhao extends MeioDeTransporte // Sub Classe
{
	float cilindradas;
	int tara;
//	 Set e Get Cilindradas	
	public void setCilindradas (float cilindradas)
	{
		this.cilindradas = cilindradas;
	}
	public float getCilindradas()
	{
		return cilindradas;
	}
//	 Set e Get Tara	
	public void setTara (int tara)
	{
		this.tara = tara;
	}
	public int getTara()
	{
		return tara;
	}
	
	public Caminhao()//construtor padrão
	{
	}
	
	public Caminhao (float cilindradas, int tara, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.cilindradas = cilindradas;
		this.tara = tara;
	}
}
//Fim sub classe Caminhao

//Inicio sub classe Trem
class Trem extends MeioDeTransporte // Sub Classe
{
	int qtdeVagoes;	
//	 Set e Get Qtde Vagoes	
	public void setQtdeVagoes (int qtdeVagoes)
	{
		this.qtdeVagoes = qtdeVagoes;
	}
	public int getQtdeVagoes()
	{
		return qtdeVagoes;
	}	
		
	public Trem()//construtor padrão
	{
	}
	
	public Trem (int qtdeVagoes, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.qtdeVagoes = qtdeVagoes;
	}
}
//Fim sub classe Trem

//Inicio sub classe Aviao
class Aviao extends MeioDeTransporte // Sub Classe
{
	float propulsao;
	float autonomia;
//	 Set e Get Propulsao	
	public void setPropulsao (float propulsao)
	{
		this.propulsao = propulsao;
	}	
	public float getPropulsao()
	{
		return propulsao;
	}
//	 Set e Get Autonomia	
	public void setAutonomia (float autonomia)
	{
		this.autonomia = autonomia;
	}	
	public float getAutonomia()
	{
		return autonomia;
	}		
 
	public Aviao()//construtor padrão
	{
	}
	
	public Aviao (float propulsao, float autonomia, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.propulsao = propulsao;
		this.autonomia = autonomia;
	}
//	Fim sub classe Aviao		
}
import javax.swing.*;
public class CriaTransporte 
{
	
	public static void main (String arg[])
	{			
		int cont=0;
		int continua=1;
		
		do
		{
		
		String pergunta=JOptionPane.showInputDialog(null,"Digite: \n (1) para Moto \n (2) para Ônibus \n (3) para Caminhão \n (4) para Trem \n (5) para Avião","Cria Transporte",JOptionPane.PLAIN_MESSAGE);
		int perg=Integer.parseInt(pergunta);
				
		switch (perg)
		{
		case 1:
				
		int qtdeMoto = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Motos que deseja cadastrar?","==== MOTO =====",JOptionPane.PLAIN_MESSAGE));
		cont = (cont + qtdeMoto);
		
		Moto ListMoto [] = new Moto [qtdeMoto];
		for (int i=0; i<qtdeMoto; i++)
		{
// 			Super Classe
			String marca = JOptionPane.showInputDialog(null,"Digite a marca");
			String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
			int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
			int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
			float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//			Sub-classe
			int tamanhoAro = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o tamnho do Aro"));
			int cilindradas = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a cilindrada"));

// 			Super Classe
			ListMoto[i] = new Moto();
			ListMoto[i].setMarca(marca);
			ListMoto[i].setModelo(modelo);
			ListMoto[i].setAnoFabricacao(anoFabricacao);
			ListMoto[i].setQtdeRodas(qtdeRodas);
			ListMoto[i].setPotenciaMotor(potenciaMotor);
//			Sub-classe	
			ListMoto[i].setTamanhoAro(tamanhoAro);
			ListMoto[i].setCilindradas(cilindradas);	
		}
		for (int i=0; i<qtdeMoto; i++)
		{
			JOptionPane.showMessageDialog(null,
					"  marca " + ListMoto[i].getMarca()+ 
					"  \n modelo " + ListMoto[i].getModelo()+ 
					"  \n foi fabricado no ano " + ListMoto[i].getAnoFabricacao()+ 
					"  \n nº de Rodas: " + ListMoto[i].getQtdeRodas()+ 
					"  \n Potencia do Motor: " + ListMoto[i].getPotenciaMotor()+ 
					"  \n Aro tamanho: " + ListMoto[i].getTamanhoAro() +
					"  \n Cilindradas: " + ListMoto[i].getCilindradas());	

		}
		break;
		case 2:
			
			int qtdeOnibus = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Onibus que deseja cadastrar?","==== ONIBUS =====",JOptionPane.PLAIN_MESSAGE));
			cont = (cont + qtdeOnibus);
			
			Onibus ListOnibus [] = new Onibus [qtdeOnibus];
			for (int i=0; i<qtdeOnibus; i++)
			{
//	 			Super Classe
				String marca = JOptionPane.showInputDialog(null,"Digite a marca");
				String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
				int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
				int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
				float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//				Sub-classe
				int qtdePassageiros = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de passageiros"));				

//	 			Super Classe
				ListOnibus[i] = new Onibus();
				ListOnibus[i].setMarca(marca);
				ListOnibus[i].setModelo(modelo);
				ListOnibus[i].setAnoFabricacao(anoFabricacao);
				ListOnibus[i].setQtdeRodas(qtdeRodas);
				ListOnibus[i].setPotenciaMotor(potenciaMotor);
//				Sub-classe	
				ListOnibus[i].setQtdePassageiros(qtdePassageiros);
					
			}
			for (int i=0; i<qtdeOnibus; i++)
			{
				JOptionPane.showMessageDialog(null,
						" marca " + ListOnibus[i].getMarca()+ 
						" \n modelo " + ListOnibus[i].getModelo()+ 
						" \n foi fabricado no ano " + ListOnibus[i].getAnoFabricacao()+ 
						" \n nº de Rodas: " + ListOnibus[i].getQtdeRodas()+ 
						" \n Potencia do Motor: " + ListOnibus[i].getPotenciaMotor()+ 
						" \n Quantidade de passageiros: " + ListOnibus[i].getQtdePassageiros());	
			}	
			break;
			case 3:
		
				int qtdeCaminhao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Caminhões que deseja cadastrar?","==== CAMINHÃO =====",JOptionPane.PLAIN_MESSAGE));
				cont = (cont + qtdeCaminhao);
				
				Caminhao ListCaminhao [] = new Caminhao [qtdeCaminhao];
				for (int i=0; i<qtdeCaminhao; i++)
				{
//		 			Super Classe
					String marca = JOptionPane.showInputDialog(null,"Digite a marca");
					String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
					int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
					int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
					float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//					Sub-classe
					float cilindradas = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite a cilindrada:"));
					int tara = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a Tara:"));				

//		 			Super Classe
					ListCaminhao[i] = new Caminhao();
					ListCaminhao[i].setMarca(marca);
					ListCaminhao[i].setModelo(modelo);
					ListCaminhao[i].setAnoFabricacao(anoFabricacao);
					ListCaminhao[i].setQtdeRodas(qtdeRodas);
					ListCaminhao[i].setPotenciaMotor(potenciaMotor);
//					Sub-classe	
					ListCaminhao[i].setCilindradas(cilindradas);
					ListCaminhao[i].setTara(tara);
				}
				for (int i=0; i<qtdeCaminhao; i++)
				{
					JOptionPane.showMessageDialog(null,
							" marca " + ListCaminhao[i].getMarca()+ 
							" \n modelo " + ListCaminhao[i].getModelo()+ 
							" \n foi fabricado no ano " + ListCaminhao[i].getAnoFabricacao()+ 
							" \n nº de Rodas: " + ListCaminhao[i].getQtdeRodas()+ 
							" \n Potencia do Motor: " + ListCaminhao[i].getPotenciaMotor()+ 
							" \n Quantidade de Cilindradas: " + ListCaminhao[i].getCilindradas()+
							" \n A tara é: " + ListCaminhao[i].getTara());	
				}	

				
				break;
				case 4:
		
				int qtdeTrem = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Trem que deseja cadastrar?","==== TREM =====",JOptionPane.PLAIN_MESSAGE));
				cont = (cont + qtdeTrem);
				
				Trem ListTrem [] = new Trem [qtdeTrem];
				for (int i=0; i<qtdeTrem; i++)
				{
//		 			Super Classe
					String marca = JOptionPane.showInputDialog(null,"Digite a marca");
					String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
					int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
					int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
					float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//					Sub-classe
					int qtdeVagoes = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a Quantidade de vagões:"));				

//		 			Super Classe
					ListTrem[i] = new Trem();
					ListTrem[i].setMarca(marca);
					ListTrem[i].setModelo(modelo);
					ListTrem[i].setAnoFabricacao(anoFabricacao);
					ListTrem[i].setQtdeRodas(qtdeRodas);
					ListTrem[i].setPotenciaMotor(potenciaMotor);
//					Sub-classe	
					ListTrem[i].setQtdeVagoes(qtdeVagoes);
					
				}
				for (int i=0; i<qtdeTrem; i++)
				{
					JOptionPane.showMessageDialog(null,
							" marca " + ListTrem[i].getMarca()+ 
							" \n modelo " + ListTrem[i].getModelo()+ 
							" \n foi fabricado no ano " + ListTrem[i].getAnoFabricacao()+ 
							" \n nº de Rodas: " + ListTrem[i].getQtdeRodas()+ 
							" \n Potencia do Motor: " + ListTrem[i].getPotenciaMotor()+ 
							" \n Quantidade de vagões: " + ListTrem[i].getQtdeVagoes());	
				}	

				break;
				case 5:
		
				int qtdeAviao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Aviões que deseja cadastrar?","==== Aviões =====",JOptionPane.PLAIN_MESSAGE));
				cont = (cont + qtdeAviao);
				
				Aviao ListAviao [] = new Aviao [qtdeAviao];
				for (int i=0; i<qtdeAviao; i++)
				{
//		 			Super Classe
					String marca = JOptionPane.showInputDialog(null,"Digite a marca");
					String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
					int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
					int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
					float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//					Sub-classe
					float propulsao = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a propulsao?"));
					float autonomia = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a autonomia?"));
									

//		 			Super Classe
					ListAviao[i] = new Aviao();
					ListAviao[i].setMarca(marca);
					ListAviao[i].setModelo(modelo);
					ListAviao[i].setAnoFabricacao(anoFabricacao);
					ListAviao[i].setQtdeRodas(qtdeRodas);
					ListAviao[i].setPotenciaMotor(potenciaMotor);
//					Sub-classe	
					ListAviao[i].setPropulsao(propulsao);
					ListAviao[i].setAutonomia(autonomia);
				}
				for (int i=0; i<qtdeAviao; i++)
				{
					JOptionPane.showMessageDialog(null,
							" marca " + ListAviao[i].getMarca()+ 
							" \n modelo " + ListAviao[i].getModelo()+ 
							" \n foi fabricado no ano " + ListAviao[i].getAnoFabricacao()+ 
							" \n nº de Rodas: " + ListAviao[i].getQtdeRodas()+ 
							" \n Potencia do Motor: " + ListAviao[i].getPotenciaMotor()+ 
							" \n Propulsao: " + ListAviao[i].getPropulsao()+
							" \n Autonimia: " + ListAviao[i].getAutonomia());	
				}	
				break;
				default: 
					JOptionPane.showMessageDialog(null," Opção inválida!! ");
			
				
		}
		
		String Continuar=JOptionPane.showInputDialog(null,"Digite: \n (1) para Continuar \n (2) para Encerrar","Dúvida Cruel!!",JOptionPane.PLAIN_MESSAGE);
		continua=Integer.parseInt(Continuar);
		
		
		}
		while (continua==1);
		
		JOptionPane.showMessageDialog(null," Você criou " + cont + " Transportes" );
		
		
	}
}

Se alguém puder analisar e sugerir uma forma mais otimizada de desenvolver o mesmo. Fique a vontade.

Obrigado.

Pessoal obrigado pelas dicas.

Adrianospk eu estudo na Uniban CL, mas estava tentando solucionar este exercício juntamente com um amigo que estuda na Uniban MR.

Valeu pelo contribuição do código.

Vou adicionar abaixo mais uma forma de resolver o exercício.

public class MeioDeTransporte 
{
	private String marca, modelo;
	private int anoFabricacao, qtdeRodas;
	private float potenciaMotor;
	
	public MeioDeTransporte ()//Construtor padrão
	{
	}
	
	public MeioDeTransporte(String marca, String modelo, int anoFabricacao, 
								int qtdeRodas, float potenciaMotor)
	{
		this.marca = marca;
		this.modelo = modelo;
		this.anoFabricacao = anoFabricacao;
		this.qtdeRodas = qtdeRodas;
		this.potenciaMotor = potenciaMotor;
	}
// Set e Get Marca	
	public void setMarca(String marca)
	{
		this.marca=marca;
	}
	public String getMarca()
	{
		return marca;		
	}
//	 Set e Get Modelo
	public void setModelo(String modelo)
	{
		this.modelo = modelo;
	}
	public String getModelo(){
		return modelo;		
	}
//	 Set e Get Ano de Fabricacao	
	public void setAnoFabricacao(int anoFabricacao)
	{
		this.anoFabricacao = anoFabricacao;
	}
	public int getAnoFabricacao()
	{
		return anoFabricacao;		
	}
//	 Set e Get QtdeRodas	
	public void setQtdeRodas (int qtdeRodas)
	{
		this.qtdeRodas = qtdeRodas;
	}	
	public int getQtdeRodas ()
	{
		return qtdeRodas;
	}
//	 Set e Get Potencia do Motor	
	public void setPotenciaMotor (float potenciaMotor)
	{
		this.potenciaMotor = potenciaMotor;
	}	
	public float getPotenciaMotor()
	{
		return potenciaMotor;
	}
}
//Início Sub Classe Moto
class Moto extends MeioDeTransporte 
{
	int tamanhoAro;
	int cilindradas;
//	 Set e Get Tamanho Aro	
	public void setTamanhoAro (int tamanhoAro)
	{
		this.tamanhoAro = tamanhoAro;
	}
	public float getTamanhoAro()
	{
		return tamanhoAro;
	}
//	 Set e Get Cilindradas	
	public void setCilindradas (int cilindradas)
	{
		this.cilindradas = cilindradas;
	}
	public float getCilindradas()
	{
		return cilindradas;
	}
	
	public Moto()//construtor padrão
	{
	}
	public Moto (int tamanhoAro, int cilindradas, String marca, String modelo,
					int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.tamanhoAro = tamanhoAro;
		this.cilindradas = cilindradas;
	}
}
//Fim sub classe Moto

//Inicio sub classe Onibus
class Onibus extends MeioDeTransporte // Sub Classe
{
	int qtdePassageiros;	
//	 Set e Get Qtde Passageiros	
	public void setQtdePassageiros (int qtdePassageiros)
	{
		this.qtdePassageiros = qtdePassageiros;
	}
	public int getQtdePassageiros()
	{
		return qtdePassageiros;
	}	
	
	public Onibus()//construtor padrão
	{
	}
	
	public Onibus (int qtdePassageiros, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.qtdePassageiros = qtdePassageiros;
	}
}
//Fim sub classe Onibus

//Inicio sub classe Caminhao
class Caminhao extends MeioDeTransporte // Sub Classe
{
	float cilindradas;
	int tara;
//	 Set e Get Cilindradas	
	public void setCilindradas (float cilindradas)
	{
		this.cilindradas = cilindradas;
	}
	public float getCilindradas()
	{
		return cilindradas;
	}
//	 Set e Get Tara	
	public void setTara (int tara)
	{
		this.tara = tara;
	}
	public int getTara()
	{
		return tara;
	}
	
	public Caminhao()//construtor padrão
	{
	}
	
	public Caminhao (float cilindradas, int tara, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.cilindradas = cilindradas;
		this.tara = tara;
	}
}
//Fim sub classe Caminhao

//Inicio sub classe Trem
class Trem extends MeioDeTransporte // Sub Classe
{
	int qtdeVagoes;	
//	 Set e Get Qtde Vagoes	
	public void setQtdeVagoes (int qtdeVagoes)
	{
		this.qtdeVagoes = qtdeVagoes;
	}
	public int getQtdeVagoes()
	{
		return qtdeVagoes;
	}	
		
	public Trem()//construtor padrão
	{
	}
	
	public Trem (int qtdeVagoes, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.qtdeVagoes = qtdeVagoes;
	}
}
//Fim sub classe Trem

//Inicio sub classe Aviao
class Aviao extends MeioDeTransporte // Sub Classe
{
	float propulsao;
	float autonomia;
//	 Set e Get Propulsao	
	public void setPropulsao (float propulsao)
	{
		this.propulsao = propulsao;
	}	
	public float getPropulsao()
	{
		return propulsao;
	}
//	 Set e Get Autonomia	
	public void setAutonomia (float autonomia)
	{
		this.autonomia = autonomia;
	}	
	public float getAutonomia()
	{
		return autonomia;
	}		
 
	public Aviao()//construtor padrão
	{
	}
	
	public Aviao (float propulsao, float autonomia, String marca, String modelo,
			int anoFabricacao, int qtdeRodas, float potenciaMotor)
	{
		super (marca, modelo, anoFabricacao, qtdeRodas, potenciaMotor);
		this.propulsao = propulsao;
		this.autonomia = autonomia;
	}
//	Fim sub classe Aviao		
}
import javax.swing.*;
public class CriaTransporte 
{
	
	public static void main (String arg[])
	{			
		int cont=0;
		int continua=1;
		
		do
		{
		
		String pergunta=JOptionPane.showInputDialog(null,"Digite: \n (1) para Moto \n (2) para Ônibus \n (3) para Caminhão \n (4) para Trem \n (5) para Avião","Cria Transporte",JOptionPane.PLAIN_MESSAGE);
		int perg=Integer.parseInt(pergunta);
				
		switch (perg)
		{
		case 1:
				
		int qtdeMoto = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Motos que deseja cadastrar?","==== MOTO =====",JOptionPane.PLAIN_MESSAGE));
		cont = (cont + qtdeMoto);
		
		Moto ListMoto [] = new Moto [qtdeMoto];
		for (int i=0; i<qtdeMoto; i++)
		{
// 			Super Classe
			String marca = JOptionPane.showInputDialog(null,"Digite a marca");
			String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
			int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
			int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
			float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//			Sub-classe
			int tamanhoAro = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o tamnho do Aro"));
			int cilindradas = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a cilindrada"));

// 			Super Classe
			ListMoto[i] = new Moto();
			ListMoto[i].setMarca(marca);
			ListMoto[i].setModelo(modelo);
			ListMoto[i].setAnoFabricacao(anoFabricacao);
			ListMoto[i].setQtdeRodas(qtdeRodas);
			ListMoto[i].setPotenciaMotor(potenciaMotor);
//			Sub-classe	
			ListMoto[i].setTamanhoAro(tamanhoAro);
			ListMoto[i].setCilindradas(cilindradas);	
		}
		for (int i=0; i<qtdeMoto; i++)
		{
			JOptionPane.showMessageDialog(null,
					"  marca " + ListMoto[i].getMarca()+ 
					"  \n modelo " + ListMoto[i].getModelo()+ 
					"  \n foi fabricado no ano " + ListMoto[i].getAnoFabricacao()+ 
					"  \n nº de Rodas: " + ListMoto[i].getQtdeRodas()+ 
					"  \n Potencia do Motor: " + ListMoto[i].getPotenciaMotor()+ 
					"  \n Aro tamanho: " + ListMoto[i].getTamanhoAro() +
					"  \n Cilindradas: " + ListMoto[i].getCilindradas());	

		}
		break;
		case 2:
			
			int qtdeOnibus = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Onibus que deseja cadastrar?","==== ONIBUS =====",JOptionPane.PLAIN_MESSAGE));
			cont = (cont + qtdeOnibus);
			
			Onibus ListOnibus [] = new Onibus [qtdeOnibus];
			for (int i=0; i<qtdeOnibus; i++)
			{
//	 			Super Classe
				String marca = JOptionPane.showInputDialog(null,"Digite a marca");
				String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
				int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
				int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
				float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//				Sub-classe
				int qtdePassageiros = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de passageiros"));				

//	 			Super Classe
				ListOnibus[i] = new Onibus();
				ListOnibus[i].setMarca(marca);
				ListOnibus[i].setModelo(modelo);
				ListOnibus[i].setAnoFabricacao(anoFabricacao);
				ListOnibus[i].setQtdeRodas(qtdeRodas);
				ListOnibus[i].setPotenciaMotor(potenciaMotor);
//				Sub-classe	
				ListOnibus[i].setQtdePassageiros(qtdePassageiros);
					
			}
			for (int i=0; i<qtdeOnibus; i++)
			{
				JOptionPane.showMessageDialog(null,
						" marca " + ListOnibus[i].getMarca()+ 
						" \n modelo " + ListOnibus[i].getModelo()+ 
						" \n foi fabricado no ano " + ListOnibus[i].getAnoFabricacao()+ 
						" \n nº de Rodas: " + ListOnibus[i].getQtdeRodas()+ 
						" \n Potencia do Motor: " + ListOnibus[i].getPotenciaMotor()+ 
						" \n Quantidade de passageiros: " + ListOnibus[i].getQtdePassageiros());	
			}	
			break;
			case 3:
		
				int qtdeCaminhao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Caminhões que deseja cadastrar?","==== CAMINHÃO =====",JOptionPane.PLAIN_MESSAGE));
				cont = (cont + qtdeCaminhao);
				
				Caminhao ListCaminhao [] = new Caminhao [qtdeCaminhao];
				for (int i=0; i<qtdeCaminhao; i++)
				{
//		 			Super Classe
					String marca = JOptionPane.showInputDialog(null,"Digite a marca");
					String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
					int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
					int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
					float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//					Sub-classe
					float cilindradas = Float.parseFloat(JOptionPane.showInputDialog(null,"Digite a cilindrada:"));
					int tara = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a Tara:"));				

//		 			Super Classe
					ListCaminhao[i] = new Caminhao();
					ListCaminhao[i].setMarca(marca);
					ListCaminhao[i].setModelo(modelo);
					ListCaminhao[i].setAnoFabricacao(anoFabricacao);
					ListCaminhao[i].setQtdeRodas(qtdeRodas);
					ListCaminhao[i].setPotenciaMotor(potenciaMotor);
//					Sub-classe	
					ListCaminhao[i].setCilindradas(cilindradas);
					ListCaminhao[i].setTara(tara);
				}
				for (int i=0; i<qtdeCaminhao; i++)
				{
					JOptionPane.showMessageDialog(null,
							" marca " + ListCaminhao[i].getMarca()+ 
							" \n modelo " + ListCaminhao[i].getModelo()+ 
							" \n foi fabricado no ano " + ListCaminhao[i].getAnoFabricacao()+ 
							" \n nº de Rodas: " + ListCaminhao[i].getQtdeRodas()+ 
							" \n Potencia do Motor: " + ListCaminhao[i].getPotenciaMotor()+ 
							" \n Quantidade de Cilindradas: " + ListCaminhao[i].getCilindradas()+
							" \n A tara é: " + ListCaminhao[i].getTara());	
				}	

				
				break;
				case 4:
		
				int qtdeTrem = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Trem que deseja cadastrar?","==== TREM =====",JOptionPane.PLAIN_MESSAGE));
				cont = (cont + qtdeTrem);
				
				Trem ListTrem [] = new Trem [qtdeTrem];
				for (int i=0; i<qtdeTrem; i++)
				{
//		 			Super Classe
					String marca = JOptionPane.showInputDialog(null,"Digite a marca");
					String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
					int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
					int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
					float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//					Sub-classe
					int qtdeVagoes = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a Quantidade de vagões:"));				

//		 			Super Classe
					ListTrem[i] = new Trem();
					ListTrem[i].setMarca(marca);
					ListTrem[i].setModelo(modelo);
					ListTrem[i].setAnoFabricacao(anoFabricacao);
					ListTrem[i].setQtdeRodas(qtdeRodas);
					ListTrem[i].setPotenciaMotor(potenciaMotor);
//					Sub-classe	
					ListTrem[i].setQtdeVagoes(qtdeVagoes);
					
				}
				for (int i=0; i<qtdeTrem; i++)
				{
					JOptionPane.showMessageDialog(null,
							" marca " + ListTrem[i].getMarca()+ 
							" \n modelo " + ListTrem[i].getModelo()+ 
							" \n foi fabricado no ano " + ListTrem[i].getAnoFabricacao()+ 
							" \n nº de Rodas: " + ListTrem[i].getQtdeRodas()+ 
							" \n Potencia do Motor: " + ListTrem[i].getPotenciaMotor()+ 
							" \n Quantidade de vagões: " + ListTrem[i].getQtdeVagoes());	
				}	

				break;
				case 5:
		
				int qtdeAviao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Aviões que deseja cadastrar?","==== Aviões =====",JOptionPane.PLAIN_MESSAGE));
				cont = (cont + qtdeAviao);
				
				Aviao ListAviao [] = new Aviao [qtdeAviao];
				for (int i=0; i<qtdeAviao; i++)
				{
//		 			Super Classe
					String marca = JOptionPane.showInputDialog(null,"Digite a marca");
					String modelo = JOptionPane.showInputDialog(null,"Digite a modelo");
					int anoFabricacao = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o ano de Fabricação"));
					int qtdeRodas = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a quantidade de Rodas"));
					float potenciaMotor = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a potência do motor?"));
//					Sub-classe
					float propulsao = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a propulsao?"));
					float autonomia = Float.parseFloat(JOptionPane.showInputDialog(null, "Qual a autonomia?"));
									

//		 			Super Classe
					ListAviao[i] = new Aviao();
					ListAviao[i].setMarca(marca);
					ListAviao[i].setModelo(modelo);
					ListAviao[i].setAnoFabricacao(anoFabricacao);
					ListAviao[i].setQtdeRodas(qtdeRodas);
					ListAviao[i].setPotenciaMotor(potenciaMotor);
//					Sub-classe	
					ListAviao[i].setPropulsao(propulsao);
					ListAviao[i].setAutonomia(autonomia);
				}
				for (int i=0; i<qtdeAviao; i++)
				{
					JOptionPane.showMessageDialog(null,
							" marca " + ListAviao[i].getMarca()+ 
							" \n modelo " + ListAviao[i].getModelo()+ 
							" \n foi fabricado no ano " + ListAviao[i].getAnoFabricacao()+ 
							" \n nº de Rodas: " + ListAviao[i].getQtdeRodas()+ 
							" \n Potencia do Motor: " + ListAviao[i].getPotenciaMotor()+ 
							" \n Propulsao: " + ListAviao[i].getPropulsao()+
							" \n Autonimia: " + ListAviao[i].getAutonomia());	
				}	
				break;
				default: 
					JOptionPane.showMessageDialog(null," Opção inválida!! ");
			
				
		}
		
		String Continuar=JOptionPane.showInputDialog(null,"Digite: \n (1) para Continuar \n (2) para Encerrar","Dúvida Cruel!!",JOptionPane.PLAIN_MESSAGE);
		continua=Integer.parseInt(Continuar);
		
		
		}
		while (continua==1);
		
		JOptionPane.showMessageDialog(null," Você criou " + cont + " Transportes" );
		
		
	}
}

Se alguém puder analisar e sugerir uma forma mais otimizada de desenvolver o mesmo. Fique a vontade.

Obrigado.

Eu tbm estudo na UNIBAN campos MR o filha da mãe do professor me fez fazer esse código por escrito imagina 4 folhas de almaço.

Gostei da outra alternativa. falowww um abraço.