Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida

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"?

1 resposta
solução!

Ola!

muita gente associa polimorfismo somente ao uso do @override. Mas o polimorfismo vai além disso.

  • Herança: quando uma classe “herda” atributos e métodos de outra.
  • Polimorfismo: capacidade de uma mesma interface (classe mãe) ter diferentes formas de comportamento nas classes filhas.

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:

  • A classe ContaSalario herda de Conta.
  • Mas ela tem atributos e comportamentos diferentes (cnpjEmpresa, nomeEmpresa e depositarSalario()).

Isso é polimorfismo porque:

  • Apesar de todas as contas (ContaCorrente, ContaPoupanca, ContaSalario) compartilharem a mesma base (titular e saldo),
  • Cada uma pode se comportar de maneira distinta quando você usa métodos ou cria lógica relacionada a elas.

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).
  • Métodos/atributos novos em subclasses = polimorfismo também, porque cada tipo da hierarquia tem seu próprio jeito de agir.

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;