In der objektorientierten Programmierung ist Vererbung der Kernmechanismus für die Wiederverwendung und Erweiterung von Code. Durch Vererbung können Unterklassen die vorhandenen Eigenschaften und Methoden der übergeordneten Klasse direkt nutzen, ohne dieselbe Logik neu schreiben zu müssen, wodurch die Codestruktur prägnanter und effizienter wird.
class Person {
protected $name;
protected $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function getName() {
return $this->name;
}
public function getAge() {
return $this->age;
}
}
class Student extends Person {
private $school;
public function __construct($name, $age, $school) {
parent::__construct($name, $age);
$this->school = $school;
}
public function getSchool() {
return $this->school;
}
}
$student = new Student("John Doe", 20, "Harvard University");
echo $student->getName(); // John Doe
echo $student->getAge(); // 20
echo $student->getSchool(); // Harvard UniversityIm obigen Beispiel stellt die Person-Klasse als übergeordnete Klasse grundlegende Eigenschaften und Methoden bereit, und die Student-Klasse erweitert die Funktionalität der übergeordneten Klasse durch Vererbung und fügt ein neues Attribut $school hinzu. Auf diese Weise verwendet die Unterklasse nicht nur die Logik der übergeordneten Klasse wieder, sondern kann auch ihr eigenes Verhalten flexibel erweitern.
Durch Polymorphismus können verschiedene Klassen dieselbe Methodenschnittstelle auf unterschiedliche Weise implementieren, wodurch das Programm flexibler und erweiterbarer wird. In PHP wird Polymorphismus normalerweise durch Methodenüberschreibung (Override) implementiert.
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function speak() {
echo "Animal speaks.";
}
}
class Cat extends Animal {
public function speak() {
echo "Meow!";
}
}
class Dog extends Animal {
public function speak() {
echo "Woof!";
}
}
$animals = [new Cat("Kitty"), new Dog("Buddy")];
foreach ($animals as $animal) {
echo $animal->getName() . ": ";
$animal->speak();
echo "<br>";
}Das obige Beispiel zeigt Polymorphismus in Aktion. Obwohl die Klassen Cat und Dog beide von Animal erben, überschreiben sie jeweils die speak() -Methode. Wenn diese Methode aufgerufen wird, werden je nach tatsächlichem Objekttyp unterschiedliche Ergebnisse ausgegeben, was die Flexibilität des Polymorphismus widerspiegelt.
In realen Projekten können Vererbung und Polymorphismus die Wartbarkeit und Skalierbarkeit von Code erheblich verbessern. Zu den gängigen Anwendungsszenarien gehören:
Vererbung und Polymorphismus sind wichtige unterstützende Punkte der objektorientierten PHP-Programmierung. Durch Vererbung kann Code modularisiert und wiederverwendet werden, während Polymorphismus Programmen flexible Erweiterungsmöglichkeiten ermöglicht. Das Verstehen und Beherrschen dieser beiden Funktionen kann Entwicklern dabei helfen, besser lesbare, wartbare und skalierbare Anwendungen zu erstellen.