Polimorfismo en PHP explicado [con ejemplos]

Publicado: 2021-02-19

El lenguaje de programación PHP sigue un paradigma de programación orientada a objetos (POO), junto con otras estructuras base. Una de las características más significativas de los OOP es el polimorfismo. En términos generales, polimorfismo se deriva de las palabras griegas poli que significa muchos y morfismo que significa formas. El polimorfismo en OOPs es un concepto que te permite crear clases con diferentes funcionalidades en una sola interfaz.

Generalmente, es de dos tipos: tiempo de compilación (sobrecarga) y tiempo de ejecución (anulación), pero el polimorfismo en PHP no admite la sobrecarga o, en otras palabras, el polimorfismo en tiempo de compilación. El beneficio más importante del polimorfismo en PHP es que no tiene que preocuparse por los aspectos técnicos de definir qué código se escribe en qué clase, ya que todos se usarán de la misma manera.

Un ejemplo fácil de entender del polimorfismo de PHP orientado a objetos es el área de diferentes formas geométricas. Hay muchas formas con diferentes longitudes, anchos, radios y otros parámetros, pero todas las figuras tendrán un área. No se preocupe si no lo entendió, ya que veremos varios ejemplos de polimorfismo en PHP para comprender mejor el concepto y cómo implementarlo.

Tabla de contenido

¿Cómo implementar el polimorfismo en PHP?

El polimorfismo en PHP se puede implementar mediante el uso de interfaces o clases abstractas. Veremos ejemplos para aplicarlo en ambos sentidos.

Ejemplo de polimorfismo en PHP para implementar en interfaces

Puede considerar la interfaz como un modelo para todas las clases que la amplían. Son similares a las clases con una sola diferencia principal. Puede declarar y definir nombres de métodos y argumentos dentro de las interfaces, pero no puede escribir código de método. Cualquier clase que implemente una interfaz implementará todos sus métodos. La sintaxis de una interfaz es:

ejemplo de interfazInterfaz{

nombre del método de función pública ();

}

Ya que ya conoces las interfaces, veamos cómo implementar el polimorfismo en PHP en una interfaz.

<?php

interfaz ShapeExmp{

función pública calcArea();

}

clase SquareExmp implementa ShapeExmp{

lado privado $;

función pública __construct($lado){

$este->lado = $lado;

}

función pública calcArea(){

$area = $este->lado * $este->lado;

echo “Área del cuadrado = “.$área;

}

}

clase RectangleExmp implementa ShapeExmp{

privado $ancho1;

privado $altura1;

función pública __construct($ancho1,$alto1){

$esto->ancho1 = $ancho1;

$esto->alto1 = $alto1;

}

función pública calcArea(){

$area = $esto->ancho1 * $esto->alto1;

echo “<br>Área del rectángulo = “.$área;

}

}

clase TriangleExmp implementa ShapeExmp{

privado $cons1;

privado $ancho1;

privado $altura1;

función pública __construct($cons1,$width1,$height1){

$esto->cons1 = $cons1;

$esto->ancho1 = $ancho1;

$esto->alto1 = $alto1;

}

función pública calcArea(){

$area = $esto->cons1 * $esto->ancho1 * $esto->alto1;

echo “<br>Área del 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();

?>

Producción:

Área del cuadrado = 64

Área del rectángulo = 150

Área del triángulo = 3

Como puede ver en el ejemplo anterior, hemos implementado el polimorfismo en PHP a través de una interfaz. Hemos construido y obtenido el área de tres formas: cuadrado, triángulo y rectángulo. Las clases implementadas van cambiando, y los argumentos también, pero el resultado es siempre el área de la forma. Del mismo modo, también puede construir y calcular el área de otras formas, como círculos, paralelogramos, elipses y más.

Ejemplo de polimorfismo en PHP para implementar en clases abstractas

Las clases abstractas en PHP son las clases principales que tienen métodos definidos pero no el código. Se definen con la ayuda de la palabra clave "abstract". Solo puede usarlos para heredar otras clases. Cada clase abstracta tiene uno o más métodos abstractos. Estas clases requieren que sus clases secundarias llenen los métodos con el mismo nombre. Por lo tanto, diferentes clases secundarias usan los métodos de la misma manera, implementando así el polimorfismo en PHP. Entendamos mejor esto con un ejemplo de polimorfismo en PHP.

<?php

clase abstracta formaExmp{

función protegida abstracta calcArea();

}

clase rectánguloExmp extiende formaExmp{

var $x,$y;

función pública __construct($x, $y){

$esto->x=$x;

$esto->y=$y;

}

función pública calcArea(){

$a=$esto->x*$esto->y;

devolver $a;

}

}

clase circleExmp extiende formaExmp{

var $r;

función pública __construct($r){

$esto->r=$r;

}

función pública calcArea(){

$pi=3.142;

$a=pow($esto->r,2)*$pi;

devolver $a;

}

}

clase squareExmp extiende formaExmp{

var $s;

función pública __construir($s){

$esto->s=$s;

}

función pública calcArea(){

$a=$esto->s * $esto->s;

devolver $a;

}

}

$rect=nuevo rectánguloExmp(8,10);

$area=$rect->calcArea();

echo “Área del rectángulo= $área <br>”;

$circ=nuevo circuloExmp(5);

$area=$circ->calcArea();

echo “Área circular=$área<br>”;

$squ=nuevo cuadradoExmp(7);

$area=$squ->calcArea();

echo “Área cuadrada= $área <br>”;

?>

Producción:

área del rectángulo = 80

Área del círculo=78.55

área cuadrada=49

Como puede ver en el ejemplo anterior, primero creamos una clase abstracta shapeExmp. Luego definimos una función abstracta calcArea() en él. Para calcular el área del círculo, el rectángulo y el cuadrado, derivamos esas clases de la clase abstracta y usamos la función abstracta calcArea(). De manera similar, puede usar las clases abstractas para implementar polimorfismo en PHP y usarlo durante el tiempo de ejecución.

Pago: Proyectos PHP en Github

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Esto habría despejado todas tus dudas sobre el polimorfismo en PHP. Puede intentar usarlo de diferentes maneras con la ayuda de cualquier IDE o compilador PHP en línea. PHP ha crecido hasta convertirse en un lenguaje de programación predominante. Hay numerosas oportunidades profesionales disponibles en PHP . Es muy adecuado para el desarrollo web interactivo y es esencial para aprender a convertirse en un desarrollador de pila completa.

Si desea seguir una carrera de desarrollo de pila completa, puede consultar el programa Executive PG de upGrad y IIIT-B en el curso de desarrollo de software de pila completa . El curso le ofrece educación sobre 16 lenguajes y herramientas de programación diferentes. Con más de 9 asignaciones de proyectos para completar durante el curso, upGrad le brinda seguridad de ubicación. Le ofrece más de 500 horas de materiales de capacitación para ayudarlo a aprender cómo crear aplicaciones y sitios web robustos y escalables.

¿Qué es la programación orientada a objetos?

¿Qué es el polimorfismo en programación?

El polimorfismo es la capacidad de tener más de una forma. Por ejemplo, un perro tiene 4 patas pero las patas son diferentes. Esta es una forma diferente del mismo objeto. En programación de computadoras, el polimorfismo es la capacidad de tener diferentes entradas y tener una sola salida. Por ejemplo, podemos tener una clase de Persona, Trabajador y Cliente y cada individuo tiene diferentes entradas. Tienen diferentes entradas ya que cada persona tiene diferente nombre, dirección y número de teléfono. Sin embargo, la salida es la misma para todos ellos, que es la clase de Persona.

¿Cómo funcionan las clases y los objetos en la programación?

Las clases son una unidad fundamental de la programación orientada a objetos (POO). Son planos de objetos y, como tales, se utilizan para crear objetos y definir el comportamiento de los mismos. Las clases se pueden considerar como los bloques de construcción universales de la programación orientada a objetos. Se utilizan para crear objetos que son específicos para una tarea o situación en particular. Sin embargo, a diferencia del mundo real, las clases se pueden crear casi en cualquier momento y en cualquier orden. Puede crear una clase incluso antes de saber cómo se utilizará, un proceso conocido como instanciación de clase "anónima".