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]
[code]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();
}[/code]
[code]package automoveis;
public class VeiculosPasseio extends Veiculo{
public VeiculosPasseio(){
super();
}
public VeiculosPasseio(String placa){
super(placa);
}
//@override
public double obterValorPedagio(){
return 4;
}
}[/code]
[code]
package automoveis;
public class Moto extends Veiculo{
public Moto(){
super();
}
public Moto(String placa){
super(placa);
}
//@override
public double obterValorPedagio(){
return 2;
}
}[/code]
[code]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;
}
}[/code]
[code]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());
}
}[/code]