HOWTO · PHP
Clase abstracta de PHP
Este tutorial demuestra cómo crear y usar clases abstractas en PHP.
En esta página
Las clases abstractas son clases con al menos un método abstracto. Este tutorial demuestra cómo crear y usar clases abstractas en PHP.
Clase abstracta de PHP
En PHP, las clases abstractas se declaran utilizando la palabra clave abstract, a diferencia de C++. La clase abstracta debe contener al menos un método abstracto sin ningún código real; este método solo tiene el nombre y los parámetros declarados con la palabra clave abstract.
El propósito de una clase abstracta es proporcionar el tipo de plantilla para heredar y obligar a la clase heredera a implementar los métodos abstractos. La clase abstracta es algo entre la interfaz pura y una clase regular.
La interfaz también puede ser un caso especial de clases abstractas donde cada método es abstracto. La clase abstracta nunca se puede instanciar, y si alguna clase contiene un método abstracto, esa clase debe ser abstracta.
La sintaxis de la clase abstracta es:
<?php
abstract class Demo
{
abstract function Method_Name(Parameters);
}
?>
Esta sintaxis crea una clase abstracta con el método abstracto Method_Name.
Probemos un ejemplo para una clase abstracta en PHP:
<?php
// Parent abstract class
abstract class Employee {
public $Employee_Name;
public function __construct($Employee_Name) {
$this->name = $Employee_Name;
}
abstract public function intro() : string;
}
// Child classes
class Jack extends Employee {
public function intro() : string {
return "Hello I am Project Manager at Delftstack! My Name is $this->name!";
}
}
class Michelle extends Employee {
public function intro() : string {
return "Hi I am Human Resource Manager at Delftstack! My Name is $this->name!";
}
}
class John extends Employee {
public function intro() : string {
return "Hey I am a Senior Developer at Delftstack! My Name is $this->name!";
}
}
// Create objects from the child classes of abstract class
$Jack = new Jack("Jack");
echo $Jack->intro();
echo "<br>";
$Michelle = new Michelle("Michelle");
echo $Michelle->intro();
echo "<br>";
$John = new John("John");
echo $John->intro();
?>
Jack, Michelle y John se heredan de la clase abstracta Employee, lo que significa que pueden usar la propiedad pública Employee_Name y el método público __construct de la clase abstracta Employee solo por la herencia. Pero intro() es el método abstracto por eso se define en todas las clases.
Ver salida para el código:
Hello I am Project Manager at Delftstack! My Name is Jack!
Hi I am Human Resource Manager at Delftstack! My Name is Michelle!
Hey I am a Senior Developer at Delftstack! My Name is John!