Como sobrescrever métodos herdados em PHP?
A sobrescrita de métodos (override) em PHP permite que uma classe filha modifique o comportamento de um método herdado de uma classe pai. Isso possibilita a personalização do código sem alterar a classe original.
Criando uma Classe Base e uma Classe Herdeira com Sobrescrita
<?php
class Animal {
public function fazerSom() {
return "O animal emite um som";
}
}
class Cachorro extends Animal {
public function fazerSom() {
return "O cachorro late!";
}
}
?>
Criando um Objeto e Testando a Sobrescrita
<?php
$meuCachorro = new Cachorro();
echo $meuCachorro->fazerSom();
?>
Explicação do Código
- Criamos a classe
Animal
com o métodofazerSom()
. - A classe
Cachorro
herda deAnimal
e sobrescreve o métodofazerSom()
para fornecer um comportamento específico. - Quando chamamos
$meuCachorro->fazerSom()
, o PHP executa o método sobrescrito na classeCachorro
, e não o método original deAnimal
.
Por que a sobrescrita de métodos é importante na OOP?
A sobrescrita de métodos é essencial para criar código flexível e modular. Esse recurso permite modificar o comportamento de classes herdadas sem alterar a estrutura original, garantindo que um sistema possa evoluir sem afetar o código existente.
Algumas aplicações:
- Personalização de comportamentos em classes derivadas
- Facilidade na manutenção e reutilização de código
- Implementação de funcionalidades específicas sem modificar a classe base
- Aplicação de padrões de design como Factory e Strategy
Dicas para quem está começando
- Para sobrescrever um método, basta declarar um método com o mesmo nome na classe filha.
- Utilize
parent::metodo()
caso precise chamar o método original da classe pai. - Evite sobrescrever métodos desnecessariamente para manter a clareza do código.
- Teste diferentes cenários para entender o comportamento da sobrescrita.
- Utilize
final
na classe pai se quiser evitar que métodos sejam sobrescritos.
Contribuições de Daniel Moreira