Sobreposicao de um metodo Set

Tenho uma class chamada Carro que no set do atributo velocidademáxima faço uma validação para que a velocidade não ultrapasse 200km, ou seja, o atributo não pode receber valores maiores que 200. Agora crio uma outra class CarroCorrida que é filho da class Carro e que teve ter uma sobreposicao do método set do atributo velocidademáxima, pois ele pode receber valores maior que 200.

Pois bem, tentei simplesmente criar o novo método na class filho, mas no this.velocidademáxima o eclipse dá um erro, dizendo que esta class não tem o tal atributo velocidademáxima. O que fazer? :expressionless:

Provavelmente a sua variável é private.
Atributos e métodos privados não são enxergados pelos filhos.

Para resolver o problema, ou você aumenta a visibilidade do seu atributo (tornando público, por exemplo). Ou você declara um outro atributo com o mesmo nome na classe filha.

Minha recomendação é pela segunda opção

private int velocidademaxima, só pode estar assim como mtakeda disse… :wink:

Seu atributo é privado?

Se o atributo for privado na classe pai a classe filho não vai conseguir ter acesso. Você só acessa atravês do get e set.

A solução seria cria um set especifico no pai para que o filho possa setar o valor sem passar pela validação.

O atributo é privado sim. Então a melhor forma séria eu criar o mesmo atributo na class CarroCorrida ?

para esse exemplo, eu acho que seria o melhor mesmo