Überschreiben ist ein objektorientiertes Programmierkonzept, das einem Konzept wie Klasse, Objekt, Kapselung, Polymorphismus, Überladung usw. in PHP ähnelt. Das Überschreiben von Funktionen und Klassen erfolgt, wenn in der abgeleiteten Klasse eine Methode erstellt wird, die mit der Methode in der Basisklasse oder übergeordneten Klasse identisch ist. Beide Methoden haben den gleichen Namen und die gleiche Anzahl an Argumenten.
WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Lassen Sie uns untersuchen, wie das Überschreiben in PHP funktioniert.
Das Beispiel für das Überschreiben von Methoden ist unten beschrieben.
Code:
class BaseClass { public function ABC() { echo "<br /> In the base class"; } } class DerivedClass extends BaseClass { // override the method ABC() of base class public function ABC() { echo "<br />In the derived class"; } } $obj1 = new BaseClass; $obj1->ABC(); $obj2 = new DerivedClass; $obj2->ABC();
Ausgabe:
Es gibt drei Zugriffsmodifikatoren.
Wie wir wissen, ist die geschützte Methode von einer Basisklasse und der abgeleiteten Klasse aus zugänglich. Sie kann in der Unterklasse öffentlich gemacht werden, aber nicht privat, da auf „private“ nur in der übergeordneten Klasse zugegriffen werden kann. Auch wenn eine Klassenmethode einen Zugriffsbezeichner als öffentlich hat, kann die überschreibende Methode in der abgeleiteten Klasse nicht als privat und geschützt deklariert werden
Ein Beispiel für das Überschreiben mithilfe von Zugriffsmodifikatoren finden Sie unten.
Code:
class BaseClass { private function ABC() { echo "<br/>In the base class Method : ABC"; } protected function XYZ() { echo "<br/>In the base class Method : XYZ"; } } class DerivedClass extends BaseClass { // overriding with public for wider accessibility public function ABC() { echo "<br/> In the derived class Method : ABC"; } // overriding method // with more accessibility public function XYZ() { echo "<br/>In the derived class Method : XYZ"; } } //$obj1 = new BaseClass; //$obj1->ABC(); //throws fatal error //$obj1->XYZ(); //throws fatal error $obj2 = new DerivedClass; $obj2->ABC(); $obj2->XYZ();
Ausgabe:
Das letzte Schlüsselwort wird für Klassen und Methoden verwendet. Methoden und Klassen, nicht Variablen, können überschrieben werden.
Wenn eine Methode oder eine Klasse als endgültig deklariert ist, kann kein Überschreiben dieser Methode oder Klasse durchgeführt werden, und eine Vererbung mit der Klasse ist nicht möglich.
Das Beispiel für das Überschreiben mit dem Schlüsselwort final ist unten aufgeführt.
Code:
class BaseClass { // Final method – display // this cannot be overridden in base class final function display() { echo "<br /> In the Base class display function"; } /// method - ABC function ABC() { echo "<br /> In the Base cLass ABC function"; } } class DerivedClass extends BaseClass { function ABC() { echo "<br /> In the Derived class ABC function"; } } $obj1 = new DerivedClass; $obj1->display(); $obj1->ABC();
Ausgabe:
A class declared as final cannot be inherited. A Final Class further have final method along with other methods. But since the class itself is declared final there is no use of declaring a final method in a final class.
The example of class overriding using final keyword is written below.
Code:
// class declared as final cannot be overridden final class BaseClass { // method - ABC function ABC() { echo "<br> In the BaseClass Method ABC function"; } // Final method - display function display() { echo "<br> In the BaseClass Method display function"; } } // here you cannot extend the base class // as the base class is declared as final $obj1 = new BaseClass; $obj1->display(); $obj1->ABC();
Output:
Das obige ist der detaillierte Inhalt vonÜberschreiben in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!