Abstrakte Klassen sind eine Art von Klassen in der objektorientierten Programmierung (OOP), die nicht direkt instanziiert werden können. Sie dienen als grundlegendes Modell, das von abgeleiteten Klassen erweitert wird. Der Hauptvorteil abstrakter Klassen besteht darin, eine einheitliche Struktur für gemeinsame Funktionen bereitzustellen und gleichzeitig den abgeleiteten Klassen zu ermöglichen, diese Funktionen spezifisch zu implementieren.
Verwenden Sie das Schlüsselwort abstract vor der Klassendefinition.
Sie werden in der abstrakten Klasse mit abstract definiert und enthalten keine Implementierung.
Die abgeleitete Klasse (Child Class) muss alle abstrakten Methoden der abstrakten Klasse implementieren.
<?php
// Definition einer abstrakten Klasse
abstract class Fahrzeug {
// Abstrakte Methode, keine Implementierung
abstract public function motorStarten();
// Konkrete Methode mit Implementierung
public function motorStoppen() {
echo "Der Motor wurde gestoppt.\\n";
}
}
// Klasse, die von der abstrakten Klasse erbt
class Auto extends Fahrzeug {
// Implementierung der abstrakten Methode
public function motorStarten() {
echo "Autokraftwerk gestartet.\\n";
}
}
// Eine weitere Klasse, die von der abstrakten Klasse erbt
class Motorrad extends Fahrzeug {
// Implementierung der abstrakten Methode
public function motorStarten() {
echo "Motorradmotor gestartet.\\n";
}
}
// Erstellen eines Objekts der Klasse Auto
$auto = new Auto();
$auto->motorStarten(); // Ausgabe: Autokraftwerk gestartet.
$auto->motorStoppen(); // Ausgabe: Der Motor wurde gestoppt.
// Erstellen eines Objekts der Klasse Motorrad
$motorrad = new Motorrad();
$motorrad->motorStarten(); // Ausgabe: Motorradmotor gestartet.
$motorrad->motorStoppen(); // Ausgabe: Der Motor wurde gestoppt.
motorStarten(), die in den abgeleiteten Klassen implementiert werden muss.motorStoppen(), die eine Implementierung hat und direkt verwendet werden kann.Fahrzeug und müssen die abstrakte Methode motorStarten() implementieren.Auto oder Motorrad wird die Methode motorStarten() aufgerufen und basierend auf der abgeleiteten Klasse ausgeführt.