Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

Clases abstractas en PHP

En este artículo veremos que son las clases abstractas en PHP y luego veremos como utilizarlas.

¿Qué es una Clase Abstracta?

El siguiente es un pequeño extracto del libro FUNDAMENTOS DE PROGRAMACIÓN -Luis Joyanes Aguilar

Una clase abstracta es una clase que no tiene ningún objeto; o con mayor precisión, es una clase que no puede tener
objetos instancias de la clase base. Una clase abstracta describe atributos y comportamientos comunes a otras clases,
y deja algunos aspectos del funcionamiento de la clase a las subclases concretas.

Veamos un ejemplo de clase abstracta

Ejemplo de clase abstracta
<?php
abstract class ClaseAbstracta
{
    // Forzar la extensión de clase para definir este método
    abstract protected function saludo($nombre);
    

    // Método común
    public function adios() {
        echo "adios";
    }
}
class OtraClase extends ClaseAbstracta
{


   protected function saludo($nombre){
      return "hola $nombre<br/>";
   }
   public function saludar($nombre){
       echo $this->saludo($nombre);
   }
}

$a = new OtraClase();
$a->saludar("Raul");
$a->adios();<?php
abstract class ClaseAbstracta
{
    // Forzar la extensión de clase para definir este método
    abstract protected function saludo($nombre);
    

    // Método común
    public function adios() {
        echo "adios";
    }
}
class OtraClase extends ClaseAbstracta
{


   protected function saludo($nombre){
      return "hola $nombre<br/>";
   }
   public function saludar($nombre){
       echo $this->saludo($nombre);
   }
}

$a = new OtraClase();
$a->saludar("Raul");
$a->adios();
hola Raul
adios

Las clases definidas como abstractas no pueden ser inicializadas

Todos los métodos marcados como abstract(abstractos) en la clase padre deben ser declarados en la clase hijo

Diferencias con Interfaces y clases abstractas en PHP

¿No habíamos visto algo parecido llamado interfaz?

Pero parecidos no es igual, aunque la sintaxis sea parecida, estas se comportan muy diferentes, mientras una interfaz nos permite decirle a una clase que métodos deben ser implementados, una clase abstracta es como una clase parcialmente echa o una clase a medio hacer.

Si lo quieres ver de cierta manera puedes verlo como si la clase abstracta fuera un formulario con campos hechos y campos que debes rellenar.

Puedes utilizar una clase abstracta implementando una interfaz.

Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category