Zusammenfassung

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.

Wesentliche Eigenschaften einer Abstrakten Klasse:

  1. Kann nicht instanziiert werden: Eine abstrakte Klasse ist ein Modell und muss von einer anderen Klasse abgeleitet werden.
  2. Abstrakte Methoden: Die abstrakte Klasse kann Methoden enthalten, die abstrakt sind und daher keine Implementierung haben. Diese Methoden müssen in den abgeleiteten Klassen implementiert werden.
  3. Kann konkrete Methoden enthalten: Sie kann auch Methoden mit Implementierungen enthalten.

Erstellen einer Abstrakten Klasse in PHP

1. Definition der Abstrakten Klasse:

Verwenden Sie das Schlüsselwort abstract vor der Klassendefinition.

2. Abstrakte Methoden:

Sie werden in der abstrakten Klasse mit abstract definiert und enthalten keine Implementierung.

3. Vererbung:

Die abgeleitete Klasse (Child Class) muss alle abstrakten Methoden der abstrakten Klasse implementieren.

Beispiel für eine Abstrakte Klasse

<?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.

Erklärung:

  1. Abstrakte Klasse Fahrzeug:
  2. Klassen Auto und Motorrad:
  3. Objekte: