PHP Abstrakte Klasse
Abstrakte Klassen sind Klassen mit mindestens einer abstrakten Methode. Dieses Tutorial zeigt, wie abstrakte Klassen in PHP erstellt und verwendet werden.
PHP Abstrakte Klasse
In PHP werden die abstrakten Klassen im Gegensatz zu C++ mit dem Schlüsselwort abstract
deklariert. Die abstrakte Klasse sollte mindestens eine abstrakte Methode ohne eigentlichen Code enthalten; Diese Methode hat nur den Namen und die Parameter, die mit dem Schlüsselwort abstract
deklariert sind.
Der Zweck einer abstrakten Klasse besteht darin, die Art von Vorlage bereitzustellen, von der geerbt werden kann, und die erbende Klasse zu zwingen, die abstrakten Methoden zu implementieren. Die abstrakte Klasse ist etwas zwischen der reinen Schnittstelle und einer regulären Klasse.
Die Schnittstelle kann auch ein Sonderfall abstrakter Klassen sein, bei denen jede Methode abstrakt ist. Die abstrakte Klasse kann niemals instanziiert werden, und wenn eine Klasse eine abstrakte Methode enthält, muss diese Klasse abstrakt sein.
Die Syntax für die abstrakte Klasse lautet:
<?php
abstract class Demo
{
abstract function Method_Name(Parameters);
}
?>
Diese Syntax erstellt eine abstrakte Klasse mit der abstrakten Methode Method_Name
.
Versuchen wir ein Beispiel für eine abstrakte Klasse in 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 und John werden von der abstrakten Klasse Employee
geerbt, was bedeutet, dass sie die öffentliche Eigenschaft Employee_Name
und die öffentliche Methode __construct
der abstrakten Klasse Employee
nur wegen der Vererbung verwenden können. Aber intro()
ist die abstrakte Methode, weshalb sie in allen Klassen definiert ist.
Siehe Ausgabe für den Code:
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