Clase abstracta de PHP
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!
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