Heim > Artikel > Backend-Entwicklung > PHP-objektorientiertes OOP – Schnittstellenschnittstelle
PHP unterstützt, wie die meisten objektorientierten Programmiersprachen, keine Mehrfachvererbung. Das heißt, jede Klasse kann nur von einer übergeordneten Klasse erben. Um dieses Problem zu lösen, hat PHP Schnittstellen eingeführt. Die Idee von Schnittstellen besteht darin, eine Reihe von Methoden anzugeben, die eine Klasse implementieren muss, die die Schnittstelle implementiert. Die Schnittstelle ist eine spezielle abstrakte Klasse, und die abstrakte Klasse ist eine spezielle Klasse, also ist die Schnittstelle auch eine spezielle Klasse. Warum heißt die Schnittstelle eine spezielle abstrakte Klasse? Wenn alle Methoden in einer abstrakten Klasse abstrakte Methoden sind, verwenden wir „Schnittstelle“ in einer anderen Deklarationsmethode, das heißt, alle Methoden in der Schnittstelle müssen als abstrakte Methoden deklariert werden und Variablen können nicht in der Schnittstelle deklariert werden ( Aber Konstanten können deklariert werden) und alle Mitglieder in der Schnittstelle verfügen über öffentliche Berechtigungen. Also, wenn die Unterklasse implementiert ist Stellen Sie außerdem sicher, dass Sie öffentliche Berechtigungen verwenden.
Bei der Deklaration einer Klasse verwenden wir das Schlüsselwort „Klasse“, und die Schnittstelle ist eine spezielle Klasse, und das verwendete Schlüsselwort ist „Schnittstelle“
Definition der Klasse: Klasse Klassenname { … },
Schnittstellendeklaration: Schnittstelle Schnittstellenname { …}
/ /Definieren Sie eine interface unter Verwendung des Schlüsselworts interface, „One“ ist der Schnittstellenname
interface One
{
//Definieren Sie eine Konstante
const konstant = 'constant value';
//Eine abstrakte Methode „fun1“ ist definiert
public function fun1();
// Abstrakt definiert Methode „fun2“
public function fun2();
}
?>
Im obigen Beispiel wird eine Schnittstelle „eins“ definiert, die zwei abstrakte Methoden „fun1“ und „fun2“ deklariert. Da alle Methoden in der Schnittstelle abstrakte Methoden sind, ist die Verwendung von abstrakten Methoden nicht erforderlich Das Schlüsselwort „abstract“ ist wie eine abstrakte Klasse. Darüber hinaus kann die Zugriffsberechtigung „public“ in der Schnittstelle auch entfernt werden, da alle Mitglieder in der Schnittstelle „public“ sind öffentlich, daher können wir für Mitglieder in der Schnittstelle keine „privaten“ und „geschützten“ Berechtigungen verwenden. Wir müssen öffentliche oder Standardberechtigungen verwenden. Darüber hinaus haben wir in der Schnittstelle auch eine Konstante „Konstante“ deklariert. Da variable Mitglieder in der Schnittstelle nicht verwendet werden können, müssen wir sie verwenden const-Schlüsselwortdeklaration.
Da es sich bei der Schnittstelle um eine spezielle abstrakte Klasse handelt, sind alle darin enthaltenen Methoden abstrakte Methoden, sodass die Schnittstelle keine Instanzobjekte erzeugen kann. Es ist auch eine Spezifikation, dass alle abstrakten Methoden durch Unterklassen implementiert werden müssen.
Wir können das Schlüsselwort „extends“ verwenden, um eine Schnittstelle eine andere Schnittstelle erben zu lassen: < ;?php
//Verwenden Sie „extends“, um eine andere Schnittstelle zu erben
Schnittstelle Zwei erweitert Eins
{
Funktion fun3();
function fun4();
}
?>
Und wir definieren eine Unterklasse der Schnittstelle, um sie zu implementieren Die von allen abstrakten Methoden in der Schnittstelle verwendeten Schlüsselwörter sind "implements" anstelle der zuvor erwähnten "extends"; >
//Verwenden Sie das Schlüsselwort „implementiert“, um die abstrakte Methode in der Schnittstelle zu implementieren. Zwischen der Schnittstelle und der Klasse
Klasse Drei implementiert Eins {
Funktion fun1() {
...
}
Funktion fun2 () {
...
}}//Nachdem alle Methoden implementiert sind, können wir Unterklassen verwenden, um Objekte zu instanziieren
$drei=neue Drei();?>
Wir können auch abstrakte Klassen verwenden, um einige abstrakte Methoden in der Schnittstelle zu implementieren, aber um ein Objekt zu instanziieren, muss diese abstrakte Klasse eine Unterklasse haben, um alle ihre abstrakten Methoden zu implementieren ;Wie bereits erwähnt, handelt es sich bei PHP um eine Einzelvererbung. Eine Klasse kann nur eine übergeordnete Klasse haben, aber eine Klasse kann mehrere Schnittstellen implementieren, was einer Klasse gleichkommt, die genau wie unsere mehreren Spezifikationen entsprechen muss die Gesetze des Landes, aber wenn Sie in der Schule sind, müssen Sie sich auch an die Schulregeln halten //Verwenden Sie Geräte, um mehrere Schnittstellen zu implementieren
Klasse Vier Geräte, Schnittstelle eins, Schnittstelle; zwei, ...
{//Use erweitert, um eine Klasse zu erben und implementiert, um mehrere Schnittstellen zu implementierenKlasse vier erweitert den Klassennamen eins, implementiert mtns Schnittstelle eins, Schnittstelle zwei, ...{// Alle Methoden in der Schnittstelle müssen implementiert werden, bevor das Objekt instanziiert werden kann
...}
Das Obige stellt die objektorientierte OOP-Schnittstelle von PHP vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.
Der obige Inhalt stammt aus „
Fried Peanuts“ Bruder, danke fürs Teilen.