Clases abstractas en PHP

Clases abstractas en PHP

Hola. ¿Cómo están? Bienvenidos nuevamente continuando con el curso de PHP, hoy veremos lo que son las clases abstractas en PHP 8.

La abstracción es la representación de un objeto del mundo real en términos de sus características y comportamientos más relevantes, ignorando los detalles complejos y no esenciales.

¡Empecemos!

¿Qué son las clases abstractas?

Las clases abstractas son clases que no se pueden instanciar directamente, es decir, no se pueden crear objetos directamente a partir de ellas. En cambio, las clases abstractas se utilizan como plantillas o modelos para definir la estructura y comportamiento común de un grupo de clases relacionadas.

Una clases abstractas se define con la palabra reservada “abstract” antes de la declaración de la clase, La sintaxis básica para definir una clase abstracta y un método abstracto es la siguiente:

abstract class ClaseAbstracta {

    public $atributo;

    public function metodoNormal() {
        // Implementación del método normal
    }

    // Método abstracto (solo declaración de firma, sin implementación)
    abstract public function metodoAbstracto();
}

Ejemplo de una clase abstracta

En primer lugar, vamos a crear el archivo clases_abstractas.php en la carpeta de nuestro proyecto curso_php8. Seguidamente, vamos a crear una clase MiClaseAbstracta por delante de la clase debemos usar la palabra clave “abstract”.

abstract class MiClaseAbstracta{

}

Cuando creamos métodos de tipo abstracto no se requiere desarrollarlos, simplemente se declara. Ahora vamos a crear dos métodos abstractos en la clase.

abstract protected function obtenerValor();
abstract protected function asignarValor($valor);

En las clases abstractas también se puede definir métodos que se extenderán a las clases heredadas, vamos a crear uno.

public function imprimirValor(){
    echo $this->obtenerValor();
}

Por ahora crearemos solo estos métodos en la clase abstracta. Del mismo modo, vamos a crear una clase normal MiClase que se extenderá de la clase abstracta.

class MiClase extends MiClaseAbstracta {

}

Al ser una clase que se extiende de una clase abstracta los métodos abstractos también deben de ser declarados obligatoriamente.

protected function obtenerValor(){
    return "Mensaje de la clase MiClase";
}

public function asignarValor($valor){
    return "El valor de la variable es: " . $valor;
}

Por último, vamos a crear un objeto $clase que será una nueva instancia de la clase MiClase.

$clase = new MiClase();

Ahora con el objeto $clase puedo acceder al método imprimirValor() como también al método asignarValor() con un parámetro.

$clase->imprimirValor();
echo $clase->asignarValor(100);

En el navegador podemos observar que el objeto puede acceder a los métodos de la clase abstracta y sus propios métodos.

Ejercicios de la clase

1.- Crea una clase abstracta llamada Programador con propiedades como nombre, ingresos y un métodos calcularIngresos(). Ahora, crea las clases derivadas como Freelance, Empleado y Emprendedor que hereden de la clase abstracta Programador.

Puedes descargarte el código fuente de este ejemplo y todos los demás en el repositorio de GitHub.

Hasta aquí el tutorial de hoy clases abstractas en PHP 8, si tienes 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 las interfaces en PHP 8.

Saludos y éxitos.

Victor Peña

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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *