Estava praticando o que vi nas aulas e recebi o seguinte erro quando fui rodar meu programa.
public class TestaConcecionaria {
public static void main(String[] args) {
Carro c1 = new Carro();
c1.Emplacamento();
c1.getDescricaoDoVeiculo().setAnoDeFabricacao(2010);
c1.getDescricaoDoVeiculo().setCor("prata");
c1.getDescricaoDoVeiculo().setMarca("fiat");
c1.getDescricaoDoVeiculo().setModelo("palio");
System.out.println(c1.getDescricaoDoVeiculo().getAnoDeFabricacao());
System.out.println(c1.getDescricaoDoVeiculo().getCor());
System.out.println(c1.getDescricaoDoVeiculo().getMarca());
System.out.println(c1.getDescricaoDoVeiculo().getModelo());
}
}
public abstract class Veiculo {
private Descricao descricaoDoVeiculo;
private double valor;
public void Emplacamento() {
System.out.println("O veiculo foi emplacado!");
}
public void setValor(double valor) {
this.valor = valor;
}
public double getValor() {
return valor;
}
public Descricao getDescricaoDoVeiculo() {
return descricaoDoVeiculo;
}
public void setDescricaoDoVeiculo(Descricao descricaoDoVeiculo) {
this.descricaoDoVeiculo = descricaoDoVeiculo;
}
}
public class Descricao {
String cor;
String modelo;
String marca;
int anoDeFabricacao;
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public int getAnoDeFabricacao() {
return anoDeFabricacao;
}
public void setAnoDeFabricacao(int anoDeFabricacao) {
this.anoDeFabricacao = anoDeFabricacao;
}
}
public class Carro extends Veiculo implements CalculaImposto {
@Override
public double ipva() {
return super.getValor() + (super.getValor()*0.05);
}
}