olá colegas gostaria de uma explicação legal para a seguinte situação:
Classe Pai:
public class Veiculo {
private String modelo;
private String cor;
private int ano;
public Veiculo() {
System.out.println("Criado um veículo");
}
//getters e setters
}
Classe Filha
public class Carro extends Veiculo{
private String motor;
//getters e setters
public Carro() {
System.out.println("criado um carro....");
}
public void passaMarcha(){
System.out.println("passei a marcha");
}
}
classe teste
public class Teste {
public static void main(String[] args) {
Veiculo c1 = new Carro();
c1.setCor("verde"); //ok da classe veiculo
//passa pelo construtor de carro
//mas não acessa os atributos e métodos de carro.
}
}
Gostaria que me ajudasse a esclarecer isto
qual alguma vantagem de uma chamada do tipo Veiculo c1 = new Carro(), ao inves do objeto carro direto?
ps. não estou discutindo se é melhor usar interfaça, herança ou polimorfismo, esotu tentando construir uma explicação mais robusta para uma aula…
obrigado