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"?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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;