Orientação a objetos com Java

17 - Polimorfismo sobrescrita (overriding)

O polimorfismo por sobrescrita (também conhecido como overriding) é um conceito em que uma subclasse fornece uma implementação específica para um método que já foi definido na superclasse. Quando um método da superclasse é sobrescrito, a versão da subclasse substitui a implementação da superclasse, permitindo que o comportamento do método seja adaptado de acordo com as necessidades da subclasse.

Características

  • Mesma assinatura: O método sobrescrito deve ter mesma assinatura (nome, tipo e número de parâmetros) que o método na superclasse.
  • Herança: O método que é sobrescrito deve ser herdado pela subclasse. A subclasse pode então fornecer sua própria versão desse método.
  • Anotação @Override: Embora não seja obrigatório, é uma boa prática usar a anotação @Override antes do método sobrescrito, para garantir que você está realmente sobrescrevendo um método da superclasse e evitar erros de digitação.
  • Acesso ao método sobrescrito: O método sobrescrito pode ter um nível de acesso mais permissivo do que o método da superclasse (por exemplo, um método protected na superclasse pode ser sobrescrito como public na subclasse).
  • Comportamento dinâmico (Runtime): Quando um objeto da subclasse é tratado como um objeto da superclasse (por exemplo, via referência da superclasse), a versão do método chamada será a da subclasse (se ela estiver sobrescrevendo o método).

Acompanhe o vídeo abaixo, pois será desenvolvido um exemplo utilizando o polimorfismo de sobrescrita: