1
resposta

[Dúvida] Polimorfismo

Pessoal, no começo o conceito de Polimorfismo me confundiu, especialmente a diferença entre Sobrescrita e Sobrecarga. Usei uma analogia automotiva para fixar:

A plataforma MQB da Volkswagen é a superclasse (que serve para Hatch, SUV, Sedan e Wagon [ Save the Wagons]), definindo métodos comuns como acelerar(), frear() e acenderFarol().

  • Sobrescrita (@Override) → Subclasses mudam o comportamento herdado.
    Ex: acelerar() do SUV prioriza torque; do Hatch, resposta e esportividade.

  • Sobrecarga → Mesmo método na mesma classe com parâmetros diferentes.
    Ex:

hatch.acelerar();              // Padrão  
hatch.acelerar("ModoSport");   // Ajuste de dirigibilidade

Resumo: sobrescrita altera o comportamento entre classes; sobrecarga altera a forma de chamar dentro da mesma classe?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi Matheus, tudo bem? 😊

Excelente analogia com a plataforma MQB da Volkswagen! 👍 Sua compreensão sobre polimorfismo, sobrescrita e sobrecarga está precisa.

Em resumo:

  • Sobrescrita (Override): Permite que uma subclasse forneça uma implementação específica para um método que já está definido na superclasse. 💪
  • Sobrecarga (Overload): Permite que uma classe tenha múltiplos métodos com o mesmo nome, mas com diferentes parâmetros. 🤔

Sua analogia automotiva ilustra bem a diferença: a plataforma MQB define o método acelerar(), mas cada tipo de carro (Hatch, SUV) implementa esse método de forma diferente (sobrescrita). Já a sobrecarga seria como ter diferentes modos de acelerar no mesmo carro (ex: acelerar() e acelerar("ModoSport")).

Continue explorando exemplos práticos e experimentando com código para solidificar ainda mais seu entendimento! 🚀

🎓 Para saber mais: