A programação orientada a objetos é um paradigma de programação que utiliza a abstração para criar modelos baseados no mundo real. Ela utiliza várias técnicas de programação anteriores, incluindo herança, polimorfismo, e encapsulamento. Neste capítulo, vamos focar em um conceito importante na programação orientada a objetos: a sobrescrita de métodos.
O que é a sobrescrita de métodos?
A sobrescrita de métodos é um recurso que permite a uma subclasse fornecer uma implementação específica de um método que já é fornecido por uma de suas superclasses. Quando um método em uma subclasse tem o mesmo nome, os mesmos parâmetros ou assinatura e o mesmo tipo de retorno que um método em sua superclasse, então o método na subclasse é dito ser uma sobrescrita do método na superclasse.
É usada para alcançar o polimorfismo na programação orientada a objetos. A sobrescrita de métodos permite que uma classe herdeira altere o comportamento de métodos herdados da classe pai. Isso é feito para implementar um comportamento específico da classe filha.
Como funciona a sobrescrita de métodos?
Quando um método é invocado, a máquina virtual Java (JVM) decide qual versão do método executar com base no tipo de objeto que está sendo referenciado, e não no tipo de referência. Isso significa que se uma superclasse contém um método que já foi redefinido pela subclasse, então quando o método é chamado, a versão do método na subclasse será executada.
Exemplo de sobrescrita de métodos
Considere um exemplo em que temos uma superclasse chamada Animal e uma subclasse chamada Cão. A classe Animal tem um método chamado som(), que é sobrescrito pela classe Cão.
class Animal { void som() { System.out.println("O animal faz um som"); } } class Cão extends Animal { void som() { System.out.println("O cão late"); } }
No exemplo acima, a classe Cão sobrescreve o método som() da classe Animal. Então, se criarmos um objeto da classe Cão e chamarmos o método som(), a versão do método na classe Cão será executada em vez da versão na classe Animal.
Regras para a sobrescrita de métodos
Existem algumas regras que devemos seguir ao sobrescrever métodos:
- O método na subclasse deve ter o mesmo nome, os mesmos parâmetros e o mesmo tipo de retorno que o método na superclasse.
- O método na subclasse deve ser pelo menos tão acessível quanto o método na superclasse.
- O método na subclasse não pode lançar exceções mais verificadas do que o método na superclasse.
- Se o método na superclasse é marcado como final, então ele não pode ser sobrescrito.
Compreender a sobrescrita de métodos é fundamental para entender como a programação orientada a objetos funciona, e é um conceito que é usado frequentemente na prática. Ele permite que as subclasses se comportem de maneira diferente das suas superclasses, o que pode ser muito útil em muitas situações.
A sobrescrita de métodos é uma das muitas técnicas que tornam a programação orientada a objetos uma ferramenta poderosa e flexível. Compreender este conceito é um passo importante para se tornar um programador Java eficaz.