Überschreiben von Elternmethoden in OOP in PHP
Eine Kindklasse kann eine Methode des Elternteils überschreiben, indem sie eine Methode mit dem gleichen Namen erstellt. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Elternklasse:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Lassen Sie uns in der Kindklasse eine gleichnamige Methode erstellen:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
In der Regel wird das Überschreiben von Methoden der Eltern benötigt, um das Verhalten dieser Methode zu ändern oder zu erweitern. Fügen wir in unserem Fall eine Überprüfung der Namenslänge hinzu:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Lassen Sie uns sicherstellen, dass genau die überschriebene Methode aufgerufen wird. Erstellen wir zunächst ein Objekt der Kindklasse:
<?php
$student = new Student;
?>
Rufen wir nun unsere Methode auf und übergeben ihr einen korrekten Wert:
<?php
$student->setName('john');
?>
Rufen wir nun die Methode auf und übergeben ihr einen inkorrekten Wert. Als Ergebnis werden wir eine ausgegebene Fehlermeldung sehen:
<?php
$student->setName(''); // Fehler
?>
Machen Sie in der Klasse User
einen Getter und Setter für das Alter.
Überschreiben Sie in der Klasse
Employee den Setter für das
Alter und implementieren Sie dort
eine Prüfung, ob das Alter zwischen
18 und 65 Jahren liegt.