Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in PHP?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen abstrakter Klasse und Schnittstelle in PHP ist das abstrakte Klassen können aus abstrakten Methoden und nicht-abstrakten Methoden bestehen, während alle Methoden in einer Schnittstelle keine Implementierungen haben.

PHP ist eine serverseitige Skriptsprache. Es ist eine der beliebtesten Sprachen in der Webentwicklung. PHP ermöglicht die Handhabung von Dateien, die Handhabung von Formularen, das Senden von E-Mails, das Hochladen von Dateien, das Verbinden einer Anwendung mit DBMS wie MySQL und viele andere Aufgaben. Frameworks wie Zend und Code Igniter basieren auf PHP. PHP unterstützt auch die objektorientierte Programmierung (OOP). Ein wichtiges Konzept in OOP ist die Abstraktion. Es hilft, Implementierungen auszublenden und dem Benutzer nur die Funktionalität anzuzeigen. Abstrakte Klasse und Schnittstelle sind zwei Methoden, um Abstraktion zu erreichen.

Abstraktion, Abstrakte Klasse, Schnittstelle, OOP, PHP

Was ist abstrakte Klasse in PHP?

Eine abstrakte Methode ist eine Methode, die keine Implementierung hat. Eine abstrakte Klasse ist eine Klasse, die mindestens eine abstrakte Methode besitzt. Es kann sowohl abstrakte Methoden als auch nicht-abstrakte Methoden haben. Das Schlüsselwort „abstract“ wird verwendet, um eine abstrakte Klasse zu deklarieren. Darüber hinaus sollte die Klasse, die die abstrakte Klasse erweitert, die Implementierungen für die abstrakten Methoden in dieser Klasse bereitstellen. Programmierer können keine Objekte mit einer abstrakten Klasse erstellen, aber sie können ein Objekt aus einer Klasse erstellen, die die abstrakte Klasse erweitert.

Abbildung 1: Abstrakte Klasse in PHP

Im obigen Bild ist Shape eine abstrakte Klasse. Es hat eine abstrakte Methode namens draw und eine nicht abstrakte Methode namens display. Die Triangle-Klasse erweitert Shape. Die Klasse Triangle stellt also die Implementierung für die abstrakte Methode draw bereit. In Zeile 19 wird ein Objekt von Triangle erstellt. In Zeile 20 wird die draw-Methode mit diesem Objekt aufgerufen. Daher wird die Draw-Methode ausgeführt und das „Dreieck“ auf der Konsole angezeigt.

Was ist Schnittstelle in PHP?

Alle Methoden in einer Schnittstelle sind abstrakte Methoden. Mit anderen Worten, es enthält nur Funktionsprototypen oder Funktionen ohne Implementierungen. Programmierer können keine Objekte mit einer Schnittstelle erstellen. Eine Schnittstelle wird mit dem Schlüsselwort „interface“ deklariert. Obwohl die Methoden in einer Schnittstelle abstrakt sind, deklariert der Programmierer sie nicht mit dem abstrakten Schlüsselwort. Stattdessen müssen diese Methoden den öffentlichen Sichtbarkeitsbereich haben. Eine Klasse, die eine Schnittstelle implementiert, sollte die Implementierungen für alle ihre abstrakten Methoden bereitstellen.

Abbildung 2: PHP-Programm 1 mit einer Schnittstelle

Im obigen Programm ist Shape eine Schnittstelle. Es hat eine Methode namens Draw. Es hat keine Implementierung. Die Klasse Triangle erweitert Shape. Die Triangle-Klasse stellt die Implementierung für die draw-Methode bereit. In Zeile 16 wird ein Objekt des Dreieck-Objekts erstellt. In Zeile 17 wird die draw-Methode mit diesem Objekt aufgerufen. Daher wird die Draw-Methode ausgeführt und das „Dreieck“ auf der Konsole angezeigt.

Darüber hinaus helfen Schnittstellen auch, Mehrfachvererbung zu implementieren. Mehrfachvererbung ist der Prozess, bei dem einer Klasse erlaubt wird, Attribute und Methoden mehrerer Klassen zu verwenden.

Abbildung 3: PHP-Programm mit Schnittstellen

Schnittstelle A hat eine Methode methodA. In ähnlicher Weise hat Schnittstelle B eine Methode methodB. Diese Methoden sind Funktionsprototypen. Mit anderen Worten, diese Methoden haben keine Implementierungen. Klasse Test implementiert die Schnittstellen A und B. Daher stellt diese Klasse Implementierungen für MethodeA und MethodeB bereit. Die Klasse Test hat auch eine eigene Methode namens methodTest. Zeile 26 erstellt ein Testobjekt. Dann werden methodA, method und methodTest mit diesem Objekt aufgerufen.

Unterschied zwischen abstrakter Klasse und Schnittstelle in PHP

Definition

Eine abstrakte Klasse in PHP ist eine mit einem abstrakten Schlüsselwort deklarierte Klasse und ist eine Sammlung abstrakter und nicht abstrakter Methoden. Im Gegensatz dazu ist eine Schnittstelle in PHP ein Referenztyp und besteht aus einer Sammlung von Methoden ohne Implementierungen oder Funktionsprototypen. Dies ist also der Hauptunterschied zwischen abstrakter Klasse und Schnittstelle in PHP.

Methoden

Eine abstrakte Klasse kann sowohl abstrakte Methoden als auch nicht-abstrakte Methoden haben, während alle Methoden in einer Schnittstelle Methoden ohne Implementierungen sind.

Stichwort

Während eine abstrakte Klasse mit dem Schlüsselwort „abstract“ deklariert wird, wird eine Schnittstelle mit dem Schlüsselwort „interface“ deklariert.

Verwendungszweck

Ein weiterer Unterschied zwischen abstrakter Klasse und Schnittstelle in PHP besteht darin, dass eine abstrakte Klasse zur Abstraktion beiträgt, während eine Schnittstelle zur Abstraktion sowie zur Mehrfachvererbung beiträgt.

Abschluss

Die PHP-Sprache unterstützt die objektorientierte Programmierung. Abstraktion ist eine Säule von OOP. Abstrakte Klassen und Schnittstellen sind zwei Methoden, um Abstraktion zu erreichen. Der Hauptunterschied zwischen abstrakter Klasse und Schnittstelle in PHP besteht darin, dass die abstrakte Klasse aus abstrakten Methoden und nicht abstrakten Methoden bestehen kann, während alle Methoden in einer Schnittstelle keine Implementierungen haben.

Verweise:

1. „Abstrakte Klassen in PHP.“ GeeksforGeeks, 11. Dez. 2018, hier erhältlich. 2. „Mehrfachvererbung in PHP.“ GeeksforGeeks, 21. Februar 2019, hier verfügbar.

Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in PHP?