Erro Exception in thread "main"

2 respostas
A

Caros, boa tarde!

Comecei a fazer a questao abaixo, só que estou tendo problema para rodar a classe principal. Gostaria da ajuda dos colegas!!

Obrigado,

[color=red]Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot instantiate the type Veiculo[/color]

[color=brown]Deseja-se construir um sistema que controle o fluxo de veículos em um pedágio. Todo veículo tem
uma placa e deve pagar um valor ao passar pelo pedágio.
Nesse pedágio, a tabela de preços, que depende do tipo de veículo, é fornecida abaixo.
Tipo de Veículo Preço
Moto R$2,00
Veículos de Passeio R$4,00
Caminhões R$4,00 / eixo[/color]

package automoveis;

public  abstract class Veiculo{

	private String placa;
	
	
	public Veiculo(){
		}
	
	public Veiculo(String placa){
		this.placa = placa;
	}
	

	public String getPlaca(){
		return this.placa;
	}

	public void setPlaca(String placa){
		this.placa = placa;
	}

	public abstract double obterValorPedagio();

}
package automoveis;

public class VeiculosPasseio extends Veiculo{
	
	public VeiculosPasseio(){
		super();
	}

	public VeiculosPasseio(String placa){
		super(placa);
	}

	//@override
	public double obterValorPedagio(){
		return 4;	
	}
}
package automoveis;

public class Moto extends Veiculo{
	
	public Moto(){
		super();
	}

	public Moto(String placa){
		super(placa);
	}

	//@override
	public double obterValorPedagio(){
		return 2;	
	}

}
package automoveis;

public class Caminhao extends Veiculo{
	
	public Caminhao(){
		super();
	}

	public Caminhao(String placa, int numeroEixo){
		super(placa);
		this.numeroEixo = numeroEixo;
	}
	
	private int numeroEixo;

	public int getNumeroEixo(){
		return this.numeroEixo;
	}

	public void setPlaca(int numeroEixo){
		this.numeroEixo =numeroEixo;
	}
	
	//@override
	public double obterValorPedagio(){
		return 4 * numeroEixo;	
	}
}
import java.util.Scanner;   

public class Principal {
	

	public static void main(String args []) {
	
		
		
		Scanner teclado = new Scanner (System.in);
		Veiculo v = new Veiculo();   
		teclado.nextLine(); // quebra linha pro scanner funcionar   
		String tipoVeiculo = teclado.nextLine();   
		if (tipoVeiculo.equalsIgnoreCase("VeiculosPasseio")){   
		   v = new VeiculosPasseio();   
		} 
		if (tipoVeiculo.equalsIgnoreCase("Moto")){
			v = new Moto ();
		}
		if (tipoVeiculo.equalsIgnoreCase("Caminhao")){
			v = new Caminhao (); 
		}
		else {   
			System.out.print("Operacao inválida!");     
		}   
		System.out.println("O valor do pedágio é: " + v.obterValorPedagio());  
	}
}

2 Respostas

luxu

Uma classe abstrata não se instancia…

A

OK, muito obrigado!! Já consegui resolver

Criado 21 de abril de 2011
Ultima resposta 21 de abr. de 2011
Respostas 2
Participantes 2