Bevor wir die Schnittstelle einführen, müssen wir wissen, warum wir die Schnittstelle verwenden müssen. Hier stellen wir sie Ihnen vor.
Warum dann Schnittstellen verwenden?
Unter den Computersprachen unterstützen nur wenige objektorientierte Sprachen die Mehrfachvererbung. Die PHP-Sprache, die wir lernen, unterstützt, wie die meisten Sprachen, keine Mehrfachvererbung. Um es ganz klar auszudrücken: Eine übergeordnete Klasse kann mehrere Unterklassen haben, eine Unterklasse jedoch nur eine übergeordnete Klasse.
Was ist Mehrfachvererbung?
Mehrfachvererbung ist eine Unterklasse, die zwei oder mehr übergeordnete Klassen erbt. Dies ist Mehrfachvererbung, die in PHP nicht zulässig ist. Wenn wir Mehrfachvererbung in PHP implementieren wollen, müssen wir Schnittstellen verwenden. Schnittstellen können als Lösung für die Mehrfachvererbung angesehen werden. Die objektorientierte Schnittstelle von PHP ähnelt anderen objektorientierten Sprachschnittstellen.
Syntaxeinführung von Schnittstellenklassen:
Schnittstellenklassen werden über das Schlüsselwort interface deklariert, und die Klasse kann nur nicht implementierte Methoden und einige Mitgliedsvariablen enthalten. Das Format lautet wie folgt:
interface InterfaceName{ function interfaceName1(){ } function interfaceName2(){ } }
Hinweis:
Verwenden Sie keine anderen Schlüsselwörter als public, um Klassenmitglieder in der Schnittstelle zu ändern. Für Methoden ist es in Ordnung, keine Schlüsselwörter zu schreiben. Dies wird durch die Eigenschaften der Schnittstellenklasse selbst bestimmt.
Syntax-Einführung von Unterklassen:
Unterklassen implementieren Schnittstellen über das Schlüsselwort „implements“. Wenn Sie mehrere Schnittstellen implementieren möchten, sollten Sie diese durch Kommas trennen. Und alle nicht implementierten Methoden in der Schnittstellenklasse müssen in der Unterklasse implementiert werden, sonst tritt ein schwerwiegender Fehler auf.
Format der Unterklassendefinition:
class SubClass implements InterfaceName1, InterfaceName2{ function InterfaceName1(){ } function InterfaceName2(){ } }
Über Schnittstellenklasseninstanzen:
<?php header("content-type:text/html;charset=utf-8"); interface A{ //创建接口 function a(); } interface B{ function b(); } class Php implements A{ function a() { echo 'php中文网'; } } class Html implements A , B{ function a() { echo 'PHP中文网是免费网站'; } function b() { echo 'PHP中文网网址是www.php.cn'; } } $php = new Php(); $html = new html(); $php ->a(); echo '<br/>'; $html ->a(); $html ->b();
Alle nicht implementierten Methoden in der Schnittstellenklasse müssen „Alle“ sein werden in Unterklassen implementiert, andernfalls kommt es zu einem schwerwiegenden Fehler. Sie können versuchen, einige der Klassen in der Schnittstelle selbst zu implementieren, um zu sehen, ob schwerwiegende Fehler auftreten.
Das obige ist der detaillierte Inhalt vonPHP-objektorientierte Mehrfachvererbung und Schnittstellennutzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!