Polimorfismo
Explore la sobrescritura de métodos y el comportamiento dinámico en la POO
Polimorfismo es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 5 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 5 lecciones en total.
Polimorfismo en PHP
Polimorfismo en PHP
¡Le damos la bienvenida a la lección sobre polimorfismo! En esta lección, aprenderá cómo el polimorfismo permite que los objetos adopten distintas formas y posibilita crear código flexible y reutilizable en PHP. ¡Profundicemos!

¿Qué es el polimorfismo?
¿Qué es el polimorfismo?
El polimorfismo permite que los objetos adopten múltiples formas. En PHP, significa que un método puede comportarse de manera diferente según el objeto que lo llame. Esto se logra mediante la sobrescritura de métodos o la implementación de interfaces.
Punto clave: El polimorfismo simplifica el código y aumenta su flexibilidad al permitir que el mismo método realice tareas diferentes según el contexto.
Polimorfismo mediante la sobrescritura de métodos
Polimorfismo mediante la sobrescritura de métodos
Cuando una clase hija sobrescribe un método de la clase padre, proporciona su propia implementación. Ejemplo:
Punto clave: La sobrescritura de métodos permite que distintas clases definan un comportamiento específico para el mismo método.
<?php
class Animal {
public function speak() {
echo "The animal makes a sound.";
}
}
class Dog extends Animal {
public function speak() {
echo "The dog barks.";
}
}
class Cat extends Animal {
public function speak() {
echo "The cat meows.";
}
}
$animals = [new Dog(), new Cat()];
foreach ($animals as $animal) {
$animal->speak();
echo "<br>";
}
?>
Polimorfismo mediante interfaces
Polimorfismo mediante interfaces
Las interfaces proporcionan un contrato que las clases deben seguir para implementar determinados métodos. Esto garantiza que todas las clases que las implementen definan los métodos requeridos. Ejemplo:
Consejo: Las interfaces ayudan a mantener la coherencia entre las clases.
<?php
interface Shape {
public function calculateArea();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function calculateArea() {
return pi() * pow($this->radius, 2);
}
}
class Rectangle implements Shape {
private $width, $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function calculateArea() {
return $this->width * $this->height;
}
}
$shapes = [new Circle(5), new Rectangle(4, 6)];
foreach ($shapes as $shape) {
echo "Area: " . $shape->calculateArea() . "<br>";
}
?>
Ventajas del polimorfismo
Ventajas del polimorfismo
El polimorfismo ofrece varias ventajas:
- Fomenta la reutilización del código.
- Hace que el código sea más flexible y escalable.
- Simplifica la incorporación de nuevas clases y funcionalidades.
Ejemplo: Para añadir una nueva forma al ejemplo anterior, es necesario implementar la interfaz Shape y definir el método calculateArea().
Polimorfismo con clases abstractas
Polimorfismo con clases abstractas
Las clases abstractas también se pueden utilizar para lograr el polimorfismo. Las clases hijas sobrescriben los métodos abstractos para proporcionar implementaciones específicas. Ejemplo:
Punto clave: Las clases abstractas imponen una estructura base y, al mismo tiempo, permiten el polimorfismo.
<?php
abstract class Vehicle {
abstract public function start();
}
class Car extends Vehicle {
public function start() {
echo "Car engine starts.<br>";
}
}
class Motorcycle extends Vehicle {
public function start() {
echo "Motorcycle engine starts.<br>";
}
}
$vehicles = [new Car(), new Motorcycle()];
foreach ($vehicles as $vehicle) {
$vehicle->start();
}
?>
Aplicaciones del mundo real
Aplicaciones del mundo real
El polimorfismo se utiliza ampliamente en el desarrollo de software:
- Procesamiento de pagos: Distintos métodos de pago (tarjeta de crédito, PayPal) implementan la misma interfaz.
- Desarrollo de videojuegos: Distintos tipos de personajes sobrescriben el mismo método para lograr un comportamiento único.
- Sistemas de registro: Varios registradores (archivos, bases de datos) utilizan la misma interfaz.
Punto clave: El polimorfismo ayuda a crear sistemas escalables y fáciles de mantener.
Dificultades del polimorfismo
Dificultades del polimorfismo
Aunque el polimorfismo es potente, presenta ciertas dificultades:
- Puede aumentar la complejidad si no se implementa correctamente.
- Requiere una planificación cuidadosa de las jerarquías de clases y las interfaces.
- Puede provocar errores en tiempo de ejecución si los métodos sobrescritos no se implementan correctamente.
Consejo: Pruebe siempre a fondo el comportamiento polimórfico para garantizar que funcione correctamente.
¡Excelente trabajo!
¡Excelente trabajo!
¡Felicidades! Ha aprendido sobre el polimorfismo, incluida su implementación mediante la sobrescritura de métodos, interfaces y clases abstractas. El polimorfismo es una herramienta potente para crear código flexible y reutilizable. En la próxima lección, profundizaremos en el trabajo con clases abstractas. ¡Sigamos programando!

Preguntas frecuentes
¿La lección «Polimorfismo» es gratis?
Sí — el texto completo de «Polimorfismo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 5 lecciones en total.
¿Qué aprenderé en «Polimorfismo»?
Explore la sobrescritura de métodos y el comportamiento dinámico en la POO Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 5 de 5.
¿Cuánto tiempo toma la lección «Polimorfismo»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Introducción a la POO en PHP
- Definir clases y objetos
- Herencia
- Encapsulación y modificadores de acceso
- Polimorfismo