Heim > Backend-Entwicklung > PHP-Tutorial > PHP objektorientiert – Beispielcode für die gemeinsame Nutzung einer Unterklasse, die die übergeordnete Klasse erweitert (Unterklasse, die die übergeordnete Klasse neu lädt)

PHP objektorientiert – Beispielcode für die gemeinsame Nutzung einer Unterklasse, die die übergeordnete Klasse erweitert (Unterklasse, die die übergeordnete Klasse neu lädt)

黄舟
Freigeben: 2023-03-06 21:54:02
Original
1642 Leute haben es durchsucht

In PHP werden Sie auf eine Situation stoßen, in der die Unterklasse die übergeordnete Klasse erbt, Sie jedoch bestimmte Änderungen an den Attributen und Methoden Erweiterung, dann kann die Unterklasse die Eigenschaften und Methoden neu schreiben und die Eigenschaften und Methoden mit demselben Namen wie die übergeordnete Klasse abdecken. Wenn der Inhalt der Methode der übergeordneten Klasse jedoch relativ groß ist, beispielsweise Hunderte oder Tausende von Codezeilen , dann nur „parent class name::method“ oder „parent::method“ verwenden, um die überschriebene Methode im aufzurufen parent class , es gibt nur , um die übergeordnete Klasse neu zu laden und dann die Anweisungen hinzuzufügen, die erweitert werden müssen.

Überschreiben von Methoden

<?php
 class Person{
       public $name;       
       public function construct($name="" ){         
               $this->name=$name;                                             
        }        public  function say(){
             echo "我叫".$this->name  ;  
        } 

}?><?php
     class Student extends Person{
          public $name;               

          public function construct($name=""){
               $this->name =$name;
          }//这里定义了一个和父类中同名的方法,将父类中的说话方法覆盖并重写
    public  function say(){
             echo "我叫".$this->name .",今年25岁了" ;  
    } 
}?>
Nach dem Login kopieren

Überschreiben von Methoden und Zugriffsberechtigungen

Wenn eine Unterklasse eine Methode der übergeordneten Klasse überschreibt, beachten Sie bitte, dass die Zugriffsrechte der überschriebenen Methode in der untergeordneten Klasse nicht niedriger sein dürfen als die Zugriffsrechte der überschriebenen Methode der übergeordneten Klasse. Wenn beispielsweise die Zugriffsberechtigung einer Methode in der übergeordneten Klasse geschützt ist, muss die Zugriffsberechtigung der in der Unterklasse überschriebenen Methode geschützt oder öffentlich sein. Wenn die Methode der übergeordneten Klasse über öffentliche Berechtigungen verfügt, kann die zu überschreibende Methode in der Unterklasse nur öffentlich sein. Kurz gesagt: Wenn Sie eine Methode der übergeordneten Klasse in einer Unterklasse überschreiben, muss diese über höhere Berechtigungen verfügen als die überschriebene Methode der übergeordneten Klasse.

Die Anzahl der Parameter beim Überschreiben

Unterklassen können eine andere Anzahl von Parametern als die übergeordnete Klasse haben, wie zum Beispiel das folgende

Konstruktor wird ein zusätzlicher Parameter $age hinzugefügt.

<?phpclass Student extends Person{

    public $name;    
    public $age;        

    public function construct($name="",$age=25){

         $this->name =$name;         $this->age =$age;

    }    public  function say(){

         echo "我叫".$this->name .",今年".$this->age."岁了" ;  

    } 

}?>
Nach dem Login kopieren
Im obigen Beispiel haben wir die Erweiterung von „Methode“ durch Überschreiben erreicht.

Obwohl dadurch das oben erwähnte Problem gelöst wird, kann eine Methode in der tatsächlichen Entwicklung nicht nur aus einem oder mehreren Codes bestehen, wie beispielsweise die Methode „say()“ in der Klasse „Person“. Es gibt 100 Zeilen davon Wenn wir diese Methode überschreiben und die ursprünglichen Funktionen beibehalten und etwas mehr Funktionalität hinzufügen möchten, müssen wir die ursprünglichen 100 Codezeilen plus ein paar erweiterte Codezeilen neu schreiben In einigen Fällen kann die Methode in der übergeordneten Klasse den Originalcode nicht sehen. Wie kann der Originalcode zu diesem Zeitpunkt neu geschrieben werden? Wir haben auch eine Lösung: Sie können in der Unterklassenmethode die überschriebene Methode in der übergeordneten Klasse aufrufen und einige Ihrer eigenen Funktionen hinzufügen . So implementieren Sie den Aufruf der überschriebenen Methode der übergeordneten Klasse in der Methode der untergeordneten Klasse:

Eine besteht darin, den „Klassennamen::“ der übergeordneten Klasse zu verwenden, um die überschriebene Methode der übergeordneten Klasse aufzurufen 🎜> Eine davon ist: Verwenden Sie die Methode „parent::“, um die überschriebene Methode in der übergeordneten Klasse aufzurufen.

 

Erweiterung der Methode

Was oben beschrieben wird, ist lediglich das
<?phpclass Student extends Person{

    public $name;    
    public $age;                                 

    public function construct($name="",$age=25){

        parent::construct($name,$age);        $this->age =$age;

    }    public  function say(){

        parent::say();        echo ",今年".$this->age."岁了" ;  

    } 

}?>
Nach dem Login kopieren

Neuladen der Attribute und Methoden der übergeordneten Klasse. Es handelt sich nicht um eine Überladung Man kann nur sagen, dass es sich um ein Unterklassenpaar handelt. In PHP gibt es auch das Wort Überladung, aber die Bedeutung von Überladung unterscheidet sich von der in allgemeinen sprachorientierten Sprachen.

Das obige ist der detaillierte Inhalt vonPHP objektorientiert – Beispielcode für die gemeinsame Nutzung einer Unterklasse, die die übergeordnete Klasse erweitert (Unterklasse, die die übergeordnete Klasse neu lädt). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage