Se tenho uma classe chamada Veículo que possui atributo Placa, uma classe Carro que estende da classe Veículo e possui atributo cor e modelo.
Pq quando crio uma instância do tipo carro desse jeito:
Veiculo carro = new Carro();
não posso setar o valor de Placa desse jeito:
carro.setPlaca("abc-1234");
só pode se montar um método construtor em Carro e setar o valor de placa no super(); por ele?
Isto ocorre porque seu método setPlaca está com private (estou supondo, já que você não postou o código fonte) sendo que o correto seria está com visibilidade protected.
[quote=Shatemui]Cometi um erro, na verdade acabei colocando a dúvida ao contrário, não consigo setar os valores de cor e modelo que são atributos da classe carro.
Para setar esses valores tive que fazer um método construtor em carro assim:
Criei, esse é o problema, estão lá mas mesmo assim diz que não existe, mas se crio Carro carro = new Carro(); funciona normal, mas se crio um tipo Veiculo e crio a instância de carro n funciona.
Pense da seguinte forma: vc criou um objeto do tipo veiculo. veiculo possui os metodos setCor e setModelo? Se for realmente isso, precisa estudar melhor OO (o q vc precisa eh d um typecast).
Se você criou a classe Veiculo, e a classe Carro como sendo filha de veiculo (extends), todos os métodos que a classe veiculo tem a classe Carro tambem tem, pois ele recebeu da classe Veiculo por herança.