Logo Studenta

Herencia y polimorfismo en PHP

¡Estudia con miles de materiales!

Vista previa del material en texto

Herencia y polimorfismo en PHP 
 
En PHP, la herencia y el polimorfismo son dos conceptos clave de la Programación Orientada 
a Objetos (POO) que permiten crear jerarquías de clases y facilitar la reutilización de código. 
A continuación, te explico qué son la herencia y el polimorfismo en PHP: 
 
1. Herencia: 
La herencia es un mecanismo en el que una clase nueva (clase derivada o subclase) puede 
extender o heredar las propiedades y métodos de una clase existente (clase base o 
superclase). Esto significa que la subclase tiene acceso a los atributos y métodos públicos o 
protegidos de la superclase, lo que permite agregar nuevos atributos o métodos específicos 
a la subclase. 
 
Ejemplo de herencia en PHP: 
 
// Clase base (superclase) 
class Animal { 
 public $nombre; 
 
 public function hacerSonido() { 
 return "Grrr..."; 
 } 
} 
 
// Clase derivada (subclase) 
class Perro extends Animal { 
 public function hacerSonido() { 
 return "Guau guau"; 
 } 
} 
 
En este ejemplo, la clase `Perro` extiende la clase `Animal`, lo que significa que la subclase 
`Perro` hereda el atributo `$nombre` y el método `hacerSonido()` de la superclase `Animal`. 
Sin embargo, la subclase `Perro` redefine el método `hacerSonido()`, lo que se conoce como 
sobrescritura o "override". Esto permite que el perro tenga su propio sonido específico 
("Guau guau") en lugar del sonido genérico ("Grrr...") del animal. 
 
2. Polimorfismo: 
El polimorfismo es la capacidad de una clase (o interfaz) para tomar muchas formas 
diferentes. En POO, esto se logra mediante la sobrescritura de métodos heredados. Cuando 
una subclase redefine un método de la superclase, se puede utilizar el mismo nombre del 
método para ejecutar el comportamiento específico de la subclase. 
 
Ejemplo de polimorfismo en PHP: 
 
function hacerSonidoAnimal(Animal $animal) { 
 echo $animal->hacerSonido(); 
} 
 
$animal1 = new Animal(); 
$perro1 = new Perro(); 
 
hacerSonidoAnimal($animal1); // Salida: Grrr... 
hacerSonidoAnimal($perro1); // Salida: Guau guau 
 
En este ejemplo, tenemos una función `hacerSonidoAnimal()` que acepta un objeto de tipo 
`Animal`. Cuando llamamos a esta función con un objeto de la clase `Animal`, se ejecuta el 
método `hacerSonido()` de la superclase, y cuando lo llamamos con un objeto de la clase 
`Perro`, se ejecuta el método `hacerSonido()` de la subclase `Perro`. Esto es posible gracias 
al polimorfismo. 
 
El polimorfismo nos permite trabajar con objetos de diferentes clases de manera uniforme, 
lo que hace que nuestro código sea más flexible y fácil de mantener. Además, nos permite 
crear clases más genéricas y reutilizables al definir comportamientos comunes en la clase 
base y comportamientos específicos en las subclases.

Otros materiales