Galera, desculpe encher novamente hehehe, mas me deparei com a seguinte dúvidas (Creio ser simples para quem tem alto conhecimento).
Tenho a SuperClasse Veículos e as SubClasses Carro, Moto e Caminhao. To tentando implementar o método adiciona(), o qual deve realizar algumas operações, podendo mover para o List uma instância da classe Carro, Moto ou Caminhao, conforme opção do usuário. Bom, até aih moleza… A questão é que tenho que passar como parâmetro para a classe Veículos a List e os objetos veiculo, carro, moto e caminhao. Só que o programa não aceita, dando erro no Cast
Alguém faz idéia do que possa ser?? Segue abaixo os principais trechos de meu código:
Principal
Veiculo veiculo = new Veiculo();
Veiculo carro = new Carro();
Veiculo moto = new Moto();
Veiculo caminhao = new Caminhao();
List listaVeiculo = new ArrayList();
veiculo.adiciona(listaVeiculo, veiculo, carro, moto, caminhao);
Veículos
[code]
public void adiciona (List lista, Veiculo veiculo, Veiculo carro, Veiculo moto, Veiculo caminhao){
//…
String pergunta = JOptionPane.showInputDialog(“Informe o veículo que deseja adicionar, sendo:\n\n1) Carro\n2) Moto\n3) Caminhao”);
switch (Integer.parseInt(pergunta)) {
case 1:
carro = (Carro) veiculo;
lista.add(carro);
JOptionPane.showMessageDialog(null, “A carro " + carro.getPlaca() + " foi adicionada com sucesso!”);
[code]
Supondo que a opção escolhida seja 1, ele dá erro de Cast, mas não entendo porquê!!!
Obrigado desde já!!