Hola. ¿Cómo están? Bienvenidos continuando con el curso de PHP 8, hoy veremos lo que es la herencia de objetos en PHP 8.
La herencia es un concepto mediante el cual ciertas características genéticas son transmitidas de padres a hijos. Gracias a este proceso, es común que algunos miembros de una misma familia comparten características similares.
¡Empecemos!
¿Qué es la herencia de objetos en PHP?
La herencia es una característica de la programación orientada a objetos, que permite que una clase obtenga todos los atributos y comportamientos de una clase padre. Esto permite la implementación de funcionalidad adicional en objetos de características similares sin la necesidad de duplicar parte del código.
La sintaxis para definir una herencia en PHP es la siguiente:
Clase padre (clase base)
class ClasePadre { // Atributos y métodos de la clase padre }
Clase hija que hereda de Clase Padre
class ClaseHija extends ClasePadre { // Atributos y métodos de la clase hija }
Ejemplo de herencia de objetos en PHP
Por ejemplo, un alumno es una persona, por lo que un alumno tiene un nombre, apellido, fecha de nacimiento. Además, también al ser alumno tiene atributos como la carrera que cursa, número de matrícula o carnet de estudiante, etc.
Es hora de programar. En primer lugar, vamos a crear el archivo herencia_objetos.php en el directorio de nuestro proyecto.
Crear las clases
Seguidamente, vamos a crear una clase de tipo persona que va a tener atributos como nombre, apellido y fecha de nacimiento, también va a tener métodos como “obtenerNombreApellido” y “calcularEdad”.
class Persona{ public $nombre; public $apellido; Public $fechaNacimiento; public function setNombreApellido($nombre, $apellido){ $this->nombre = $nombre; $this->apellido = $apellido; } public function getNombreApellido(){ return $this->nombre . " " . $this->apellido; } public function setFechaNacimiento($fechaNacimiento){ $this->fechaNacimiento = $fechaNacimiento; } public function getFechaNacimiento(){ return $this->fechaNacimiento; } public function calcularEdad() { $hoy = date("d-m-Y"); $fechaUno = date_create($hoy); $fechaDos = date_create($this->fechaNacimiento); $edad = date_diff($fechaDos, $fechaUno); echo $edad->format('%y') . " años"; } }
Ahora crearemos la clase Alumno que va a heredar de la clase padre Persona para acceder a todos sus atributos y métodos. En PHP una clase hereda de la clase padre con la palabra reservada “extends”.
class Alumno extends Persona { public $carrera; public $matricula; public function setCarrera($carrera){ $this->carrera = $carrera; } public function getCarrera(){ return $this->carrera; } public function notaCarrera($nota){ echo $nota . " en la carrera de " . $this->carrera; } }
Crear los objetos
Por último, vamos a crear un objeto $alumnoUno que se instancie de la clase “Alumno”. Con el objeto $alumnoUno accedemos a sus atributos y métodos de la clase “Alumno” y la clase padre “Persona”.
$alumnoUno = new Alumno(); $alumnoUno->setNombreApellido("Daniel", "Merida"); $alumnoUno->setFechaNacimiento("20-05-1995"); $alumnoUno->setCarrera("Programación en PHP"); echo $alumnoUno->getNombreApellido(); $alumnoUno->calcularEdad(); $alumnoUno->notaCarrera("95");
Ahora veremos otro ejemplo, con las clase “Animal” como clase padre y la clase “Perro” que va heredar todas las sus características de su clase padre.
class Animal { public $nombre; public function emitirSonido() { echo "Ruido genérico\n"; } } class Perro extends Animal { public function emitirSonido() { echo "Guau Guau\n"; } }
Creamos un objeto $miPerro de la clase “Perro”, ahora podemos acceder al atributo $nombre heredado de la clase “Animal” como también al método “emitirSonido”, que ha sido sobrescrito en la clase hija.
$miPerro = new Perro(); $miPerro->nombre = "Max"; echo $miPerro->nombre . " dice: "; $miPerro->emitirSonido();
Abrimos el navegador para ver los resultados.
Ejercicios de la clase
1.- Realizar una herencia simple entre lenguaje de programación (PHP) y frameworks (Laravel)
2.- Crear una clase “Figura” con atributos y métodos, una clase “Cuadrado” que herede de la clase “Figura” y que calcule el área y perímetro de un cuadrado.
Recuerda que puedes descargarte el código fuente de esta clase más los ejemplos desarrollados en el repositorio de GitHub totalmente gratis.
Hasta aquí el tutorial de hoy herencia de objetos en PHP 8, si tiene alguna consulta puedes dejarnos un comentario o si quieres saber más acerca de este tema puedes visitar el sitio oficial de PHP. En el próximo tutorial veremos lo que son clases anónimas en PHP 8.
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.