Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind objektorientiertes Umschreiben und Überladen von PHP? Was sind die Voraussetzungen für deren Nutzung?

Was sind objektorientiertes Umschreiben und Überladen von PHP? Was sind die Voraussetzungen für deren Nutzung?

伊谢尔伦
伊谢尔伦Original
2017-07-08 09:35:481550Durchsuche

Umschreiben:

bedeutet, dass die neu definierte Methode die geerbten Methoden überschreibt, wenn eine Unterklasse einige Methoden der übergeordneten Klasse erbt und die Unterklasse dieselbe Methode intern definiert Von der übergeordneten Klasse aus kann die Unterklasse nur ihre intern definierten Methoden aufrufen.

hat die folgenden Anforderungen:

1. Wenn eine übergeordnete Klasse und eine Unterklasse eine Methode mit genau denselben Parametern und Namen haben, überschreibt die Unterklassenmethode die Methode der übergeordneten Klasse . .

Die Parameter müssen konsistent sein, um eine Methodenabdeckung zu erreichen. Wenn die Anzahl der Parameter inkonsistent ist, wird ein Fehler gemeldet (dabei handelt es sich um die oben erwähnte -Methodenüberladung ). Wenn die Methodennamen inkonsistent sind, werden sie nicht überschrieben, sondern nur die neu definierten Methoden der Unterklasse.

2. Bei der Implementierung der Methodenabdeckung können die Zugriffsmodifikatoren unterschiedlich sein, der Zugriffsbereich der Unterklasse muss jedoch größer oder gleich dem Zugriffsbereich der übergeordneten Klasse sein.

Dies ist wahrscheinlich die Designregel von Sprachen wie PHP. Ich verstehe, dass es einfacher ist, auf Dinge auf einer höheren Ebene zuzugreifen. Wenn Sie auf Dinge auf einer niedrigeren Ebene zugreifen möchten, müssen Sie über höhere Berechtigungen verfügen.

erfordert, dass die Parameter mit dem Namen übereinstimmen. Es ist nicht erforderlich, dass die Unterklasse denselben Namen wie die übergeordnete Klasse hat.

erfordert, dass die Parameter und Namen mit denen der übergeordneten Klasse übereinstimmen, nicht die Parameternamen. Das heißt, der Name der übergebenen Parameter kann beliebig sein, solange die übergebene Nummer dieselbe ist.

Sehen Sie sich den Code an:

<?php
class  shao
{
    public function sasa($name){
        echo $name,&#39;狗!<br/>&#39;;
    }
}
class zhen extends shao{
    public function aaa()
    {
        echo &#39;猫<br/>&#39;;
    }
}
$lli = new zhen();
$lli->aaa();
$lli->aaa(&#39;binghh&#39;);
?>
<?php
class fu
{
    public function text(){
        echo &#39;父类&#39;;
    }
    public  function  textt(){
        echo &#39;父亲&#39;;
}
}
class erzi extends fu{
    public function text()
    {
        parent::text();//我要父类的东西
        echo &#39;儿子&#39;;//重写

    }
}
$shili = new fu();
$erzi = new erzi();
$erzi->text();
?>

Überladung:

Überladung ist der Polymorphismus der -Klasse Eine Erkenntnis. Funktion Überladung bedeutet, dass ein Bezeichner als mehrere Funktionsnamen verwendet wird und diese Funktionen mit demselben Namen durch die Parameternummer oder den Parametertyp der Funktion unterschieden werden können, und der Aufruf erfolgt nicht auftreten Verwirrt. Das heißt, wenn die Methodennamen aufgerufen werden, sind sie zwar gleich, die entsprechenden Funktionen können jedoch automatisch entsprechend unterschiedlichen Parametern aufgerufen werden.

php ist nicht einfach zu implementieren.

kann dazu führen, dass eine Methode in der Klasse mehrere Effekte erzeugt, und je nach den verschiedenen übergebenen Parametern kann unterschiedliche Logik ausgeführt werden.

hat die folgenden Anforderungen:

1. Bei Verwendung von Überladung kann dies nur durch denselben Methodennamen und unterschiedliche Parameterformen erreicht werden. Verschiedene Parametertypen können unterschiedliche Parametertypen, unterschiedliche Parameternummern und unterschiedliche Parameterreihenfolgen sein (Parametertypen müssen unterschiedlich sein
2. Überladung kann nicht durch Zugriffsberechtigungen, Rückgabetypen und ausgelöste Ausnahmen erfolgen; Der Ausnahmetyp und die Anzahl der Methoden haben keinen Einfluss auf die Überladung.

<?php
class fu
{
    public function text(){
        echo &#39;父类&#39;;
    }
    public  function  textt(){
        echo &#39;父亲&#39;;
    }
}
class erzi extends fu
{

        function test($name)
        {
            //方法重载
            parent::text();//我要父类的东西
            echo "erzi",$name;//重写

        }
    }

$erzi = new fu();
$erzi-> text("123");
?>
Überschreibungen gibt es nur in Unterklassen und übergeordneten Klassen, und Überladungen gibt es in einer Klasse.

Override ist Neuschreiben

Überladung ist Überlastung

Das obige ist der detaillierte Inhalt vonWas sind objektorientiertes Umschreiben und Überladen von PHP? Was sind die Voraussetzungen für deren Nutzung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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