Klassen durch Vererbung erweitern
Verwenden Sie extends, um Klassenhierarchien aufzubauen und Methoden zu überschreiben.
Klassen durch Vererbung erweitern ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Einführung: PHP-Vererbung
Vererbung ermöglicht es einer Klasse (Kindklasse), den Code einer anderen Klasse (Elternklasse) mithilfe des Schlüsselworts extends wiederzuverwenden und zu erweitern. PHP unterstützt einfache Vererbung.
Wichtige Konzepte
Wichtige Konzepte:
- Die Kindklasse erbt alle öffentlichen und geschützten Member
- Überschreiben Sie Methoden der Elternklasse, um das Verhalten zu ändern
- Rufen Sie eine Methode der Elternklasse mit
parent::auf - Verwenden Sie
final, um das Überschreiben zu verhindern
Einfaches extends
Beispiel:
<?php
class Shape {
public function __construct(protected string $color) {}
public function describe(): string { return "A {$this->color} shape"; }
}
class Circle extends Shape {
public function __construct(string $color, private float $radius) {
parent::__construct($color);
}
public function area(): float { return M_PI * $this->radius ** 2; }
}
$c = new Circle('red', 5);
echo $c->describe(); // A red shape
echo round($c->area()); // 79Methodenüberschreibung
Fortsetzung:
<?php
class Logger {
public function log(string $msg): void {
echo "[LOG] $msg" . PHP_EOL;
}
}
class DatabaseLogger extends Logger {
public function log(string $msg): void {
// Extend parent behavior
parent::log($msg);
// Also save to DB
echo "[DB] Saved: $msg" . PHP_EOL;
}
}
$l = new DatabaseLogger();
$l->log('User login');Schlüsselwort final
Weitere Vertiefung:
<?php
class PaymentProcessor {
final public function processPayment(float $amount): void {
// Critical logic — cannot be overridden
$this->validate($amount);
$this->charge($amount);
$this->log($amount);
}
protected function validate(float $amount): void { /* ... */ }
protected function charge(float $amount): void { /* ... */ }
protected function log(float $amount): void { /* ... */ }
}instanceof-Prüfung
Praktische Anwendung:
<?php
class Vehicle {}
class Car extends Vehicle {}
class ElectricCar extends Car {}
$ev = new ElectricCar();
var_dump($ev instanceof ElectricCar); // true
var_dump($ev instanceof Car); // true
var_dump($ev instanceof Vehicle); // true
// Also works with interfaces
var_dump($ev instanceof Countable); // falseAbstrakte Basisklasse
Fortgeschrittenes Thema:
<?php
abstract class Notification {
abstract public function send(string $message): bool;
public function sendBatch(array $messages): void {
foreach ($messages as $msg) {
$this->send($msg);
}
}
}
class EmailNotification extends Notification {
public function send(string $message): bool {
echo "Email: $message" . PHP_EOL;
return true;
}
}Muster
Gängige Muster für PHP-Vererbung helfen dabei, wiederkehrende Entwurfsprobleme sauber zu lösen. Wenden Sie sie konsequent an, damit Ihr Code lesbar und wartbar bleibt.
Wann Sie es verwenden sollten
Zu wissen, wann Sie PHP-Vererbung einsetzen sollten, ist ebenso wichtig wie zu wissen, wie sie funktioniert. Übermäßiger Einsatz führt zu Komplexität, zu geringer Einsatz zu Duplikation.
Praxisbeispiel
In realen Anwendungen findet sich PHP-Vererbung häufig in Frameworks, ORMs und Service-Schichten. Wenn Sie sie verstehen, sind Sie gut darauf vorbereitet, an professionellen PHP-Projekten mitzuwirken.
Häufige Fehler
Vermeiden Sie diese Fehler bei PHP-Vererbung:
- Rufen Sie immer parent::__construct() auf, um den Zustand der Elternklasse zu initialisieren
- Überschreiben Sie Methoden nicht nur, um parent ohne Änderungen aufzurufen
- Verwenden Sie final für sicherheitskritische Methoden
- Bevorzugen Sie Komposition gegenüber tiefen Vererbungshierarchien
Schnelltest
Welches Schlüsselwort verhindert, dass eine Methode in einer Unterklasse überschrieben wird?
Zusammenfassung: PHP-Vererbung
Zusammenfassung:
- Rufen Sie immer parent::__construct() auf, um den Zustand der Elternklasse zu initialisieren
- Überschreiben Sie Methoden nicht nur, um parent ohne Änderungen aufzurufen
- Verwenden Sie final für sicherheitskritische Methoden
- Bevorzugen Sie Komposition gegenüber tiefen Vererbungshierarchien
Häufig gestellte Fragen
Ist die Lektion „Klassen durch Vererbung erweitern“ kostenlos?
Ja — der vollständige Text von „Klassen durch Vererbung erweitern“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Klassen durch Vererbung erweitern“?
Verwenden Sie extends, um Klassenhierarchien aufzubauen und Methoden zu überschreiben. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Klassen durch Vererbung erweitern“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Klassen durch Vererbung erweitern
- Abstrakte Klassen und Methoden
- Interfaces implementieren
- Traits zur Wiederverwendung von Code