⊗ppOpIfInr 65 of 107 menu

Interfaces in OOP in PHP

Wie Sie bereits wissen, stellen abstrakte Klassen einen Satz von Methoden für ihre Nachkommen dar. Ein Teil dieser Methoden kann in der Klasse selbst implementiert werden, und ein Teil der Methoden kann als abstrakt deklariert werden und eine Implementierung in den Kindklassen erfordern.

Stellen wir uns eine Situation vor, in der Ihre abstrakte Klasse nur einen Satz von abstrakten öffentlichen Methoden darstellt, ohne Methoden mit Implementierung hinzuzufügen.

Tatsächlich beschreibt Ihre Elternklasse die Schnittstelle der Nachkommen, also den Satz ihrer öffentlichen Methoden, die verbindlich implementiert werden müssen.

Wozu brauchen wir das: um beim Programmieren weniger Fehler zu machen - indem wir alle notwendigen Methoden in der Elternklasse beschreiben, können wir sicher sein, dass alle Nachkommen sie tatsächlich implementieren.

Wann hilft das: Nehmen wir an, wir erstellen unsere Elternklasse und mehrere Nachkommen dafür. Wenn wir uns später, zum Beispiel in einem Monat, entscheiden, einen weiteren Nachkommen zu erstellen, werden wir sicher die Details unseres Codes vergessen und könnten leicht vergessen, die Implementierung einer Methode im neuen Nachkommen zu schreiben. Allerdings wird PHP selbst nicht zulassen, dass eine Methode verloren geht - und einfach einen Fehler ausgeben.

Dasselbe gilt für einen anderen Programmierer, der an Ihrem Projekt arbeitet. Nehmen wir an, den Code der Elternklasse haben Sie geschrieben, und dann entscheidet sich Ihr Kollege, einen weiteren Nachkommen zu erstellen. Auch Ihr Kollege wird es nicht schaffen, ein paar Methoden zu verlieren.

Es gibt jedoch ein Problem: Tatsächlich haben wir unsere Elternklasse erstellt, um darin abstrakte öffentliche Methoden zu schreiben, aber wir selbst oder unser Kollege haben die Möglichkeit, versehentlich eine nicht-öffentliche oder nicht-abstrakte Methode in diese Klasse einzufügen.

Nehmen wir an, wir wollen physikalisch verbieten, in der Elternklasse andere Methoden als abstrakte öffentliche zu machen. In PHP kann man dafür anstelle von abstrakten Klassen Interfaces verwenden.

Interfaces sind Klassen, bei denen alle Methoden öffentlich und ohne Implementierung sind. Den Code der Methoden müssen die die Interfaces implementierenden Kindklassen bereitstellen.

Interfaces werden genauso deklariert wie normale Klassen, aber unter Verwendung des Schlüsselworts interface anstelle des Wortes class.

Für die Vererbung von Interfaces wird eine etwas andere Terminologie verwendet: Man sagt, dass Klassen nicht von Interfaces erben, sondern sie implementieren. Dementsprechend sollte anstelle des Wortes extends das Schlüsselwort implements verwendet werden.

Man kann kein Objekt eines Interfaces erstellen. Alle Methoden des Interfaces müssen als public deklariert werden und dürfen keine Implementierung haben. Ein Interface kann nur Methoden, aber keine Eigenschaften haben. Man kann auch kein Interface und eine Klasse mit demselben Namen erstellen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen