Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida em Override

Fala, pessoal, achei bem interessante a funcionalidade do override, mas pintou uma dúvida: não saquei se isso vai sobrescrever o método de maneira global ou só pra classe específica.

Supondo que eu quisesse fazer um método com uma nova regra de depósito, apenas para a conta poupança, por exemplo, aplicar 2% sobre o valor depositado na poupança. Nesse caso, não se pode usar o override deposita, precisaria criar um novo método?

Caso seja isso mesmo, qual a vantagem do override numa classe filha, então? Não daria na mesma ao sobrescrever direto na classe mãe?

2 respostas
solução!

Fala Giovani! Tudo bem?

O Override vai sobrescrever o método para a classe onde ele está implementado e também para as classes filha dessa, mas não da classe mãe.

Seguindo seu exemplo, se sobrescrevermos o método deposita na classe ContaPoupanca e essa classe herdar a classe Conta, uma instância de ContaPoupanca vai seguir a lógica do teu método sobrescrito dentro dela, uma instância da classe Conta vai usar a lógica original dela.

No caso do método deposita talvez não faça muito sentido, mas mais pra frente nos cursos você vai se deparar com um exemplo onde temos uma classe Funcionario e uma classe Gerente, que herda de Funcionario. Nesse exemplo o Funcionario tem um método bonificacao e suponhamos que o padrão é o funcionário receber 10% de bonificação, porém um gerente recebe 50% de bonificação. Nesse caso ao sobrescrevermos o método na classe Gerente estamos falando que a bonificação de um gerente é de 50%, mas qualquer outra instância de funcionário (ou qualquer instância de classe filha exceto gerente) continua com seus 10%.

Oi, Renan, tudo bem?

Ah, faz mais sentido funcionar dessa forma, mesmo, bem mais útil!

Valeu a ajuda! :D