Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung von Beispielen für die objektorientierte PHP-Schnittstellentechnologie

Detaillierte Erläuterung von Beispielen für die objektorientierte PHP-Schnittstellentechnologie

伊谢尔伦
Freigeben: 2023-03-11 22:02:01
Original
1234 Leute haben es durchsucht

PHP5-Schnittstellentechnologie

PHP unterstützt, wie die meisten objektorientierten Programmiersprachen , keine Mehrfachvererbung Das heißt, jede A-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, die die Schnittstelle implementiert,
implementieren muss. Die Schnittstelle ist eine spezielle abstrakte Klasse , und die abstrakte Klasse ist eine spezielle Klasse, also ist die Schnittstelle auch eine
spezielle Klasse. Warum wird die Schnittstelle als spezielle abstrakte Klasse bezeichnet? Wenn alle Methoden in einer abstrakten Klasse
abstrakte Methoden sind, ändern wir die Deklarationsmethode so, dass sie „Schnittstelle“ verwendet. Das heißt, alle Methoden in der Schnittstelle müssen
als abstrakte Methoden deklariert werden in der Schnittstelle deklariert werden und alle Mitglieder in der Schnittstelle verfügen über öffentliche Berechtigungen.
Daher müssen Unterklassen bei der Implementierung auch öffentliche Berechtigungen verwenden.
Das Schlüsselwort, das wir beim Deklarieren einer Klasse verwenden, ist „class“, und die Schnittstelle ist eine spezielle Klasse, und das verwendete Schlüsselwort
ist „interface“
Klassendefinition: Klasse Klassenname { … }, Schnittstellendeklaration: Schnittstelle Schnittstellenname { ... }
Code-Snippet

<?php
abstract class Demo{ 
var $test; 
abstract function fun1(); 
abstract function fun2(); 
function fun3(){ 
… . 
} 
} 
$demo=new Demo(); //抽象类为能产生实例对象,所以这样做是错的,实例化对象交给子类 
class Test 
extends
 Demo{ 
function fun1(){ 
… 
} 
function fun2(){ 
… 
} 
} 
$test=new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法 
?>
Nach dem Login kopieren

Im obigen Beispiel wird eine Schnittstelle „one“ definiert, die zwei abstrakte Methoden „fun1“ und „fun2“ deklariert. „Da alle Methoden in der Schnittstelle abstrakte Methoden sind, müssen Sie beim Deklarieren abstrakter Methoden nicht das Schlüsselwort
„abstract“ wie bei einer abstrakten Klasse verwenden , die „öffentliche“ Zugriffsberechtigung
in der Schnittstelle kann auch entfernt werden, da die Standardeinstellung öffentlich ist, da alle Mitglieder in der Schnittstelle öffentlich sein müssen, sodass wir sie nicht verwenden können. „ Für „private“ und „geschützte“ Berechtigungen verwenden öffentlich oder die Standardeinstellung
. Darüber hinaus haben wir in der Schnittstelle auch eine Konstante „constant“ deklariert. Da Variablen nicht als Mitglieder in der Schnittstelle verwendet werden können, müssen wir die Schlüsselwortdeklaration const verwenden.
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 handelt sich auch um eine Spezifikation, und alle abstrakten Methoden müssen durch Unterklassen implementiert werden.
Wir können das Schlüsselwort „extends“ verwenden, um eine Schnittstelle eine andere Schnittstelle erben zu lassen.
Codeausschnitt


Und wir definieren eine Unterklasse einer Schnittstelle, um alle abstrakten Methoden in der Schnittstelle zu implementieren Schlüsselwort ist „implementiert“ und

ist nicht das zuvor erwähnte „extends“
<?php 
//使用”extends”继承另外一个接口 
interface Two extends One{ 
function fun3(); 
function fun4(); 
} 
?>
Nach dem Login kopieren
Code-Snippet



Wir können auch abstrakte Klassen verwenden, um einen Teil der Abstraktion in der Schnittstellenmethode zu implementieren , aber um ein Objekt zu instanziieren, muss diese abstrakte

Klasse eine Unterklasse haben, um alle ihre abstrakten Methoden zu implementieren
<?php 
//使用“implements”这个关键字去实现接口中的抽象方法 
class Three implements One{ 
function fun1(){ 
… . 
} 
function fun2(){ 
… . 
} 
} 
//实现了全部方法,我们去可以使用子类去实例化对象了 
$three=new Three(); 
?>
Nach dem Login kopieren
Wie wir bereits sagten, verfügt PHP über eine einzelne Vererbung und eine Klasse kann nur eine übergeordnete Klasse haben. aber eine Klasse kann mehrere Schnittstellen implementieren

, was gleichbedeutend damit ist, dass eine Klasse mehrere Spezifikationen einhalten muss, so wie wir uns nicht nur an die Gesetze des Landes halten müssen, sondern auch, wenn wir in der Schule sind einhalten
Die Schulregeln sind die gleichen;
Codeausschnitte


In PHP kann nicht nur eine Klasse mehrere Schnittstellen implementieren, sondern Sie können auch mehrere Schnittstellen implementieren, während Sie eine Klasse erben. Sie müssen zuerst

erben. Die Klasse implementiert dann das
<?php 
//使用implements实现多个接口 
class Four implemtns 接口一, 接口二, … .{ 
//必须把所有接口中的方法都要实现才可以实例化对象。 
} 
?>
Nach dem Login kopieren
Code-Snippet



<?php 
//使用extends继承一个类,使用implements实现多个接口 
class Four extends 类名一implemtns 接口一, 接口二, … .{ 
//所有接口中的方法都要实现才可以实例化对象 
… … … .. 
} 
?>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für die objektorientierte PHP-Schnittstellentechnologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage