Heim  >  Artikel  >  Backend-Entwicklung  >  Überladen und Umschreiben in PHP objektorientiert

Überladen und Umschreiben in PHP objektorientiert

高洛峰
高洛峰Original
2017-02-18 16:44:36851Durchsuche

Überschreiben ist eine Manifestation des Polymorphismus zwischen Elternklasse und Unterklasse, und Überladung ist eine Manifestation des Polymorphismus in einer Klasse. Eine überladene Methode kann den Typ des Rückgabewerts ändern. Mit anderen Worten: Die Rückgabewerttypen von Überladungen können gleich oder unterschiedlich sein.

Überladung

a. Methodenüberladung ist ein Mittel für Klassen, um verschiedene Arten von Daten auf einheitliche Weise zu verarbeiten. Es existieren gleichzeitig mehrere Funktionen mit demselben Namen und unterschiedlicher Anzahl/Art von Parametern. Überladung ist eine Manifestation des Polymorphismus in einer Klasse.

b. Methodenüberladung in Java bedeutet, dass Sie mehrere Methoden in einer Klasse erstellen können. Sie haben den gleichen Namen, aber unterschiedliche Parameter und unterschiedliche Definitionen. Beim Aufrufen von Methoden entscheiden Sie anhand der Anzahl und Art der an sie übergebenen Parameter, welche Methode verwendet werden soll. Dies ist Polymorphismus.

c. Beim Überladen sollte der Methodenname derselbe sein, aber der Parametertyp und die Parameternummer sind unterschiedlich und der Rückgabewerttyp kann gleich oder unterschiedlich sein. Der Rückgabetyp kann nicht als Kriterium zur Unterscheidung überladener Funktionen verwendet werden.

2. Überschreiben

a. Polymorphismus zwischen der Elternklasse und der Unterklasse, wodurch die Funktionen der Elternklasse neu definiert werden. Wenn eine in einer Unterklasse definierte Methode denselben Namen und dieselben Parameter wie ihre übergeordnete Klasse hat, spricht man von einer überschreibenden Methode. In Java können Unterklassen Methoden von ihrer übergeordneten Klasse erben, ohne dieselben Methoden neu schreiben zu müssen. Aber manchmal möchte die Unterklasse die Methoden der übergeordneten Klasse nicht unverändert erben, sondern bestimmte Änderungen vornehmen, was ein Umschreiben der Methode erfordert. Das Überschreiben von Methoden wird auch als Methodenüberschreiben bezeichnet.

b. Wenn eine Methode in der Unterklasse denselben Methodennamen, denselben Rückgabetyp und dieselbe Parameterliste wie eine Methode in der übergeordneten Klasse hat, überschreibt die neue Methode die ursprüngliche Methode. **Wenn Sie die ursprüngliche Methode in der übergeordneten Klasse benötigen, können Sie das Schlüsselwort super verwenden, das auf die übergeordnete Klasse der aktuellen Klasse verweist**.

c. Die Zugriffsänderungsrechte von Unterklassenfunktionen dürfen nicht geringer sein als die der übergeordneten Klasse.

Wenn der Name, der Rückgabetyp, der Parametertyp und die Nummer der übergeordneten Klassenmitgliedsmethode identisch sind das Gleiche, nur sein interner Code ist anders. In Java wird diese Umschreibungsmethode als Member-Methoden-Refactoring bezeichnet.

In der Unterklasse können Sie die Berechtigungen in der übergeordneten Klassenmethode neu anpassen (von geizig zu großzügig). , Erweitern oder Anpassen der Berechtigungen der übergeordneten Klasse usw., wodurch die Unterkategorie häufig in Blau angezeigt wird, jedoch besser als in Blau. Während des Entwicklungsprozesses sollten Programmentwickler diese Funktionen von Unterklassen sinnvoll nutzen. Aus einer anderen Perspektive ist es jedoch auch erforderlich, den Berechtigungen von Unterklassen bestimmte Einschränkungen aufzuerlegen. Bei Bedarf sollten Berechtigungen für bestimmte Methoden in der übergeordneten Klasse kontrolliert werden, um zu verhindern, dass sie von Unterklassen missbraucht werden.

Weitere Artikel zum Thema Überladen und Umschreiben in PHP-Objekten finden Sie auf der chinesischen PHP-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