Neste post, vamos mostrar como usar herança e polimorfismo em PHP, incluindo exemplos práticos (você pode ver o que já publicamos sobre o PHP aqui).
Esses dois elementos que iremos tratar hoje dizem respeito a base do paradigma de orientação a objetos, entende-los é fundamental para criar boas aplicações com recursos reutilizáveis e também compreender recursos e complementos externos a nossa aplicação, sejam das linguagens de programação com as quais estamos lidando como também o uso de plugins e extensões de terceiros.
Herança em PHP
A herança é um mecanismo que permite que uma classe herde as propriedades e métodos de outra classe. Isso permite a reutilização de código e a organização hierárquica de classes. Por exemplo, a seguinte classe "Estudante" herda da classe "Pessoa" e adiciona a propriedade "matricula":
class Estudante extends Pessoa {
public $matricula;
}
Polimorfismo em PHP
O polimorfismo é um mecanismo que permite que objetos de classes diferentes sejam tratados de forma genérica. Isso é possível através da implementação de interfaces, que definem um conjunto comum de métodos que devem ser implementados pelas classes que as implementam. Por exemplo, a seguinte interface "Veiculo" define o método "mover":
interface Veiculo {
public function mover();
}
E a classe Automovel implementa essa interface e define o método mover de forma específica.
class Automovel implements Veiculo{
public $marca;
public $modelo;
public $ano;
private $ligado = false;
public function __construct($marca, $modelo, $ano) {
$this->marca = $marca;
$this->modelo = $modelo;
$this->ano = $ano;
}
public function mover(){
if($this->ligado){
echo "O carro está se movendo";
}else{
echo "Ligue o carro antes de movê-lo";
}
}
public function ligar() {
$this->ligado = true;
}
public function desligar() {
$this->ligado = false;
}
public function mostrarDados() {
echo "Marca: " . $this->marca . "\n";
}
}
Dessa forma, é possível tratar objetos de diferentes classes como objetos de uma classe genérica, e chamar o método "mover" de forma genérica, independente da classe específica do objeto.
Conclusão
Juntos, herança e polimorfismo permitem a construção de sistemas orientados a objetos mais flexíveis e reutilizáveis, poupando tempo na compreensão e manutenção das funcionalidades.
Comentários
Postar um comentário
Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.