PHP Abstrakte Klasse

Sheeraz Gul 18 August 2022
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 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

Verwandter Artikel - PHP Class