Na vídeo "Conta Corrente e Poupança", da aula "Herança e o uso construtores", tem a aplicação do @Override
, que serve para que o método executado seja o da classe-filha e não da classe-mãe, pois ele foi modificado na classe-filha:
Na classe-mãe
public boolean saca(double valor) {
if(this.saldo >= valor) {
this.valor -= valor;
return true;
}
return false;
}
Na classe-filha
@Override
public boolean saca(double valor) {
valor += .03;
return super.saca(valor);
}
Porém, no curso anterior, o mesmo foi feito sem utilizar o @Override
e o método executado também foi o da classe-filha:
Na classe-mãe
public double getBonificacao() {
return this.salario*.05;
}
Na classe-filha
public double getBonificacao() {
return super.getBonificacao() + super.getSalario();
}
Por que o resultado foi igual com e sem o @Override
? Esse foi um caso específico em que não faz diferença, enquanto há outros em que é necessário? Quais?