Clase abstracta vs. Interfaz en PHP

Sheeraz Gul 20 junio 2023
  1. Clase abstracta en PHP
  2. Interfaz en PHP
  3. Clase abstracta vs. Interfaz en PHP
Clase abstracta vs. Interfaz en PHP

Este tutorial demuestra la diferencia entre clase abstracta e interfaz en PHP.

Antes de entrar en las diferencias, primero debemos entender los conceptos de clase abstracta e interfaz. Estos son los puntos importantes tanto para la clase abstracta como para la interfaz.

Clase abstracta en PHP

La clase abstracta está parcialmente implementada por los desarrolladores y contiene al menos un método abstracto, un método sin ningún código. Aquí hay algunos puntos importantes para entender la clase abstracta.

  1. La clase abstracta está bajo abstracción parcial.
  2. Podemos crear variables en la clase abstracta.
  3. Las clases abstractas pueden contener métodos abstractos y no abstractos.
  4. Podemos usar cualquier modificador de acceso en la clase abstracta.
  5. Podemos acceder a las funciones de clase abstracta de la clase derivada utilizando la palabra clave extiende.
  6. En la clase abstracta, son posibles herencias múltiples.

Aquí hay un ejemplo de cómo crear una clase abstracta.

<?php
abstract class Demo_Abstract_Class {
    abstract protected
    function Get_Value();
    public
    function Print_Value() {
        print $this -> Get_Value();
    }
}
?>

Interfaz en PHP

La interfaz está definida por la palabra clave interfaz, donde todos los métodos son abstractos. Aquí hay algunos puntos importantes para entender la interfaz.

  1. La interfaz está bajo abstracción total.
  2. No podemos crear variables en la interfaz.
  3. La interfaz solo contiene métodos abstractos.
  4. Solo se utiliza el modificador de acceso público en la interfaz.
  5. Podemos obtener la interfaz de una clase derivada usando la palabra clave implementar.
  6. Las herencias múltiples son posibles con interfaces.

Aquí hay un ejemplo para demostrar la interfaz.

<?php
interface Demo_Interface {
    public
    function execute();
}
?>

Clase abstracta vs. Interfaz en PHP

Aquí están las diferencias entre clase abstracta e interfaz.

Clase abstracta Interfaz
Sin herencia múltiple. Admite herencia múltiple.
La clase abstracta contiene un miembro de datos. La interfaz no contiene un miembro de datos.
La clase abstracta soporta los contenedores. La interfaz no soporta los contenedores.
La clase abstracta contiene miembros completos e incompletos. La interfaz contiene solo los miembros completos, lo que también se refiere a la firma del miembro.
La clase abstracta puede tener modificadores de acceso con subs, propiedades y funciones. En la interfaz todo se considera público, por lo que no tiene modificadores de acceso.
Los miembros completos de la clase abstracta pueden ser estáticos, mientras que los miembros incompletos no pueden ser estáticos. Ningún miembro de la interfaz puede ser estático.
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - PHP Class