
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: