Não entendi onde foi usado a técnica de polimorfismo no exercício 3, pois no polimorfismo não seria necessário usar o "@override"?
Não entendi onde foi usado a técnica de polimorfismo no exercício 3, pois no polimorfismo não seria necessário usar o "@override"?
Ola!
muita gente associa polimorfismo somente ao uso do @override. Mas o polimorfismo vai além disso.
O @override é uma forma de polimorfismo (reescrita de métodos), mas não é a única.
Onde aparece polimorfismo no exercício 3
No exercício da ContaSalario, veja que:
ContaSalario herda de Conta.cnpjEmpresa, nomeEmpresa e depositarSalario()).Isso é polimorfismo porque:
ContaCorrente, ContaPoupanca, ContaSalario) compartilharem a mesma base (titular e saldo), Ou seja: a ContaSalario especializa a ideia de “Conta” com um comportamento próprio.
Mesmo sem usar @override, o polimorfismo aparece no fato de que classes filhas podem ter formas diferentes de implementar funcionalidades.
Quando o @override entra em cena
O @override é usado quando a classe filha altera um método já definido na classe mãe.
Exemplo clássico (que você já viu nos exercícios anteriores):
Animal.emitirSom() → é sobrescrito em Cachorro.emitirSom() e Gato.emitirSom().No caso da ContaSalario, não houve sobrescrita, mas sim adição de novos comportamentos.
Mesmo assim, isso já é considerado polimorfismo porque estamos lidando com objetos de uma mesma hierarquia, mas com formas diferentes de agir.
Então:
@override = polimorfismo por sobrescrita (mesmo método, comportamentos diferentes).No exercício 3, o polimorfismo está no fato de que a ContaSalario faz algo diferente das outras contas (tem atributos únicos e o método depositarSalario).
Mesmo sem @override, isso já é polimorfismo!
Abs;