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;