Polimorfismo em PHP explicado [com exemplos]
Publicados: 2021-02-19A linguagem de programação PHP segue um paradigma de programação orientada a objetos (OOP), juntamente com outras estruturas básicas. Uma das características mais significativas das OOPs é o polimorfismo. Em termos gerais, o polimorfismo é derivado das palavras gregas poli que significa muitos e morfismo que significa formas. Polimorfismo em OOPs é um conceito que permite criar classes com diferentes funcionalidades em uma única interface.
Geralmente, é de dois tipos: tempo de compilação (sobrecarga) e tempo de execução (sobreposição), mas o polimorfismo no PHP não suporta sobrecarga, ou em outras palavras, polimorfismo em tempo de compilação. O benefício mais significativo do polimorfismo em PHP é que você não precisa se preocupar com os detalhes técnicos de definir qual código é escrito em qual classe, pois todos serão usados da mesma maneira.
Um exemplo fácil de entender de polimorfismo PHP orientado a objetos é a área de diferentes formas geométricas. Existem muitas formas com diferentes comprimentos, larguras, raios e outros parâmetros, mas todas as figuras terão uma área. Não se preocupe se você não entendeu, pois veremos vários exemplos de polimorfismo em PHP para entender melhor o conceito e como implementá-lo.
Índice
Como implementar polimorfismo em PHP?
O polimorfismo em PHP pode ser implementado pelo uso de interfaces ou classes abstratas. Veremos exemplos para aplicá-lo de ambas as maneiras.
Exemplo de polimorfismo em PHP para implementação em interfaces
Você pode considerar a interface como um modelo para todas as classes que a estendem. Eles são semelhantes a classes com apenas uma única diferença primária. Você pode declarar e definir nomes de métodos e argumentos dentro de interfaces, mas não pode escrever código de método. Qualquer classe que implemente uma interface implementará todos os seus métodos. A sintaxe de uma interface é:
exemplo de interfaceInterface{
função pública methodName();
}
Já que você já sabe sobre interfaces, vamos ver como implementar polimorfismo em PHP em uma interface.
<?php
interface ShapeExmp{
função pública calcArea();
}
class SquareExmp implementa ShapeExmp{
lado $ privado;
função pública __construct($side){
$este->lado = $lado;
}
função pública calcArea(){
$area = $este->lado * $este->lado;
echo “Área do quadrado = “.$área;
}
}
class RectangleExmp implementa ShapeExmp{
privado $largura1;
privado $altura1;
função pública __construct($largura1,$altura1){
$this->width1 = $width1;
$this->altura1 = $altura1;
}
função pública calcArea(){
$area = $this->width1 * $this->height1;
echo “<br>Área do retângulo = “.$area;
}
}
class TriangleExmp implementa ShapeExmp{
privado $cons1;
privado $largura1;
privado $altura1;
função pública __construct($cons1,$width1,$height1){
$this->cons1 = $cons1;
$this->width1 = $width1;
$this->altura1 = $altura1;
}
função pública calcArea(){
$area = $this->cons1 * $this->width1 * $this->height1;
echo “<br>Área do triângulo= “.$área;
}
}
$squ = new SquareExmp(8);
$squ->calcArea();
$rect = new RectangleExmp(10,15);
$rect->calcArea();
$tri = new TriangleExmp(0.5,10,12);
$tri->calcArea();
?>
Saída:
Área do quadrado = 64
Área do retângulo = 150
Área do triângulo = 3
Como você pode ver no exemplo acima, implementamos o polimorfismo no PHP através de uma interface. Construímos e obtivemos a área de três formas: quadrado, triângulo e retângulo. As classes implementadas continuam mudando, e os argumentos também, mas o resultado é sempre a área da forma. Da mesma forma, você também pode construir e calcular a área de outras formas, como círculos, paralelogramos, elipses e muito mais.
Exemplo de polimorfismo em PHP para implementar em classes abstratas
Classes abstratas em PHP são as classes pai que possuem métodos definidos, mas não o código. Eles são definidos com a ajuda da palavra-chave “abstract”. Você só pode usá-los para herdar outras classes. Cada classe abstrata tem um ou mais métodos abstratos. Essas classes exigem que suas classes filhas preencham os métodos com o mesmo nome. Assim, diferentes classes filhas usam os métodos, da mesma forma, implementando polimorfismo no PHP. Vamos entender melhor isso com um exemplo de polimorfismo em PHP.
<?php
classe abstrata formaExmp{
função protegida abstrata calcArea();
}
classe retânguloExmp estende shapeExmp{
var $x,$y;
função pública __construct($x, $y){
$isto->x=$x;
$this->y=$y;
}
função pública calcArea(){
$a=$this->x*$this->y;
retornar $a;
}
}
class circleExmp estende shapeExmp{
var $r;
função pública __construct($r){
$this->r=$r;
}
função pública calcArea(){
$pi=3,142;
$a=pow($this->r,2)*$pi;
retornar $a;
}
}
class squareExmp estende shapeExmp{
var $s;
função pública __construct($s){
$this->s=$s;
}
função pública calcArea(){
$a=$this->s * $this->s;
retornar $a;
}
}
$rect=novo retânguloExmp(8,10);
$area=$rect->calcArea();
echo “Área do retângulo= $área <br>”;
$circ=new circleExmp(5);
$area=$circ->calcArea();
echo “Cirlce area=$area<br>”;
$squ=new squareExmp(7);
$area=$squ->calcArea();
echo “Área quadrada = $área <br>”;
?>
Saída:
Área do retângulo = 80
Área do círculo = 78,55
Área quadrada = 49
Como você pode ver no exemplo acima, primeiro criamos uma classe abstrata shapeExmp. Em seguida, definimos uma função abstrata calcArea() nele. Para calcular a área do círculo, retângulo e quadrado, derivamos essas classes da classe abstrata e usamos a função abstrata calcArea(). Da mesma forma, você pode usar as classes abstratas para implementar polimorfismo em PHP e usá-lo durante o tempo de execução.
Checkout: Projetos PHP no Github
Aprenda cursos de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Conclusão
Isso teria esclarecido todas as suas dúvidas sobre polimorfismo em PHP. Você pode tentar usá-lo de diferentes maneiras com a ajuda de qualquer IDE ou compilador PHP online. O PHP cresceu e se tornou uma linguagem de programação predominante. Existem inúmeras oportunidades de carreira disponíveis em PHP . É bem adequado para desenvolvimento web interativo e essencial para aprender a se tornar um desenvolvedor full-stack.
Se você deseja seguir uma carreira de desenvolvimento full-stack, pode conferir o programa Executive PG do upGrad e IIIT-B no curso Full-stack Software Development . O curso oferece educação em 16 linguagens e ferramentas de programação diferentes. Com mais de 9 tarefas de projeto a serem concluídas durante o curso, o upGrad oferece garantia de colocação. Ele oferece mais de 500 horas de materiais de treinamento para ajudá-lo a aprender a criar sites e aplicativos robustos e escaláveis.
O que é programação orientada a objetos?
O que é polimorfismo em programação?
Polimorfismo é a capacidade de ter mais de uma forma. Por exemplo, um cachorro tem 4 patas, mas as patas são diferentes. Esta é uma forma diferente do mesmo objeto. Na programação de computadores, polimorfismo é a capacidade de ter diferentes entradas e ter uma única saída. Por exemplo, podemos ter uma classe de Pessoa, Trabalhador e Cliente e cada indivíduo tem entradas diferentes. Eles têm entradas diferentes, pois cada pessoa tem nome, endereço e número de telefone diferentes. No entanto, a saída é a mesma para todos eles, que é a classe de Person.
Como as classes e objetos funcionam na programação?
As classes são uma unidade fundamental da programação orientada a objetos (OOP). Eles são projetos para objetos e, como tal, são usados para criar objetos e definir o comportamento dos objetos. As classes podem ser consideradas os blocos de construção universais da OOP. Eles são usados para criar objetos específicos para uma determinada tarefa ou situação. Ao contrário do mundo real, no entanto, as classes podem ser criadas a qualquer momento e em qualquer ordem. Você pode criar uma classe antes mesmo de saber como ela será usada - um processo conhecido como instanciação de classe “anônima”.