Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendung von [Schnittstelle] und [Polymorphismus] in PHP objektorientiert

Anwendung von [Schnittstelle] und [Polymorphismus] in PHP objektorientiert

高洛峰
高洛峰Original
2016-11-30 09:54:07785Durchsuche

Der Code lautet wie folgt:
/* Schnittstellentechnologie
*
* Schnittstelle ist eine spezielle abstrakte Klasse, und abstrakte Klasse ist eine spezielle Klasse
*
* Schnittstellen und abstrakte Klassen haben die gleiche Funktion
*
* Da es in PHP eine Einzelvererbung gibt, kann die Unterklasse bei Verwendung einer abstrakten Klasse keine anderen Klassen erben, wenn sie die abstrakte Klasse implementiert
*
* Wenn Sie einige Spezifikationen implementieren und andere Klassen erben möchten. Nutzen Sie einfach die Schnittstelle.
*
* Vergleich von Schnittstellen und abstrakten Klassen
*
* 1. Sie haben die gleiche Funktion, keine kann Objekte erstellen und beide erfordern Unterklassen, um sie zu implementieren
*
* 2. Schnittstellen Die Deklaration unterscheidet sich von der abstrakten Klasse
*
* 3. Die Schnittstelle ist anders implementiert
*
* 4. Alle Methoden in der Schnittstelle müssen abstrakte Methoden sein, und zwar nur abstrakte Methoden kann deklariert werden (keine abstrakte Änderung erforderlich)
*
* 5. Mitgliedsattribute in der Schnittstelle können nur Konstanten deklarieren, keine Variablen
*
* 6. Mitgliedszugriffsrechte in der Schnittstelle müssen vorhanden sein öffentlich und abstrakt sein Die niedrigsten Berechtigungen in der Klasse geschützt
*
* Deklarieren der Schnittstelle: Schnittstelle Schnittstellenname { }; erweitert, verwenden Sie das Schlüsselwort „implements“
*
* Wenn die Unterklasse die abstrakte Methode in der übergeordneten Schnittstelle überschreibt, verwenden Sie implementiert (Implementierung), Klasse – Schnittstelle, abstrakte Klasse – Schnittstelle verwendet implementiert, Schnittstelle – Schnittstelle verwendet erweitert (Vererbung). )
*
* Sie können abstrakte Klassen verwenden, um einige Methoden in der Schnittstelle zu implementieren
* Wenn Sie möchten, dass Unterklassen Objekte erstellen, müssen Sie alle Methoden in der Schnittstelle implementieren
* Sie können eine Schnittstelle definieren von einer anderen Schnittstelle erben
* Eine Klasse kann mehrere Schnittstellen implementieren (um Unterklassen gemäß mehreren Spezifikationen zu entwickeln).
* Eine Klasse kann eine Klasse erben und eine oder mehrere Schnittstellen implementieren gleichzeitig. Schnittstelle
*
* Zwei Zwecke der Verwendung von Implementierungen:
*
* 1. Es können mehrere Schnittstellen implementiert werden, während das Erweiterungswort nur eine übergeordnete Klasse erben kann
*
* 2. Ohne das Wort „Extens“ zu verwenden, können Sie eine Klasse erben, sodass beide gleichzeitig verwendet werden können
*
* Polymorphismus: Polymorphismus ist eines der drei Hauptmerkmale der objektorientierten
*
* " „Polymorphismus“ ist ein wichtiges Merkmal des objektorientierten Designs. Es weist die Funktion der dynamischen Bindung auf, auch bekannt als „Polymorphismus“. Polymorphe Funktionen ermöglichen eine vollständige Erweiterung der Software während der Entwicklung und Wartung. Tatsächlich besteht die direkteste Definition von Polymorphismus darin, Objekten verschiedener Klassen mit Vererbungsbeziehungen zu ermöglichen, Mitgliedsfunktionen mit demselben Namen aufzurufen und unterschiedliche Reaktionen hervorzurufen.
*
*
*
*
*
*/
//Deklarationsschnittstelle
interface Demo{
const HOST="localhost"
const USER="admin";
function fun1();//Bei der Deklaration einer Methode muss kein Abstract hinzugefügt werden, dies ist die Standardeinstellung. Die Berechtigung ist öffentlich
function fun2();
//Vererbung der Schnittstelle
interface Demo2 erweitert Demo {
function fun4(); }
interface Demo3{
function fun5();
function fun6();
}
interface Demo4{
function fun7();
echo Demo ::HOST;//Kann auf Konstanten in der Schnittstelle
class Hello{
function fun8(){
}
}
//Unterklassen müssen alle Methoden in der Schnittstelle
implementieren Klasse UTest erweitert Hello implementiert Demo2,Demo3,Demo4 { //Mehrere Schnittstellen implementieren
function fun1(){
}
function fun2(){
}
function fun3(){
}
Funktion fun4(){
}
Funktion fun5(){
}
Funktion fun6(){
}
Funktion fun7(){
}
}
/*-------------------Polymorphismus---------------*/
Schnittstelle Test{
function fun1();
function fun2();
class One implementiert Test{
function fun1(){
echo "aaaaaaaa";
function fun2(){
echo "bbbbbbbbbbbb"; >}
function fun2(){
echo "2222222222";
}
}
//Die gleiche Schnittstelle implementiert die gleiche Methode, verschiedene Objekte und die Ausgabe ist unterschiedlich. Dies ist die Leistung und Anwendung des Polymorphismus
$test=new One;
$test->fun1();//Eine Zeile ausgeben a
$test->fun2();//Ausgabe a line b
$test=new Two;
$test->fun1();//Eine Zeile mit 1 ausgeben
$test->fun2();//Eine Zeile mit 2 ausgeben
?>
/*-------------Ein polymorphes Anwendungsbeispiel simuliert die Verwendung von USB-Geräten-------- ----- -----*/
//Eine USB-Schnittstelle
Schnittstelle USB{
Funktion mount();//Methode zum Mounten von USB
function work();//Methode zum Funktionieren von USB
function unmount();//Methode zum Aushängen von USB
}
//Definieren Sie ein USB-Gerät U-Disk
Klasse Upan implementiert USB{// Implementieren Sie die USB-Schnittstelle
function mount(){
echo „U-Disk wurde erfolgreich geladen

}
function work(){
echo „U-Disk beginnt zu funktionieren< br/>";
}
function unmount(){
echo „U-Disk erfolgreich deinstalliert
";
}
}
//Definition A USB Gerät USB-Maus
Klasse Umouse implementiert USB{//Implementieren Sie die USB-Schnittstelle
Funktion mount(){
echo " USB-Tastatur erfolgreich geladen
"
Funktionsarbeit( ){
echo „USB-Tastatur funktioniert
“;
function unmount(){
echo „USB-Tastatur erfolgreich deinstalliert

}
//Definieren Sie eine Computerklasse
Klasse Computer{
//So verwenden Sie USB-Geräte
Funktion useUSB ($usb){//$usb-Parameterdarstellung Welches USB-Gerät verwendet werden soll
$usb->mount();//Aufrufen der Montagemethode des Geräts
$usb->work();//Aufrufen der Arbeitsmethode des Geräts
$usb-> ; unmount();//Aufrufen der Deinstallationsmethode des Geräts
}
}
//Definieren Sie eine Computerbenutzerklasse
Klasse PcUser{
//Methode zum Installieren der USB-
Funktion install(){
//Bringen Sie zuerst einen Computer mit
$pc=new Computer
//Bringen Sie einige USB-Geräte mit
$up=new Upan;//Bringen Sie eine U-Disk mit
$ um=new Umouse;//Bringen Sie eine USB-Maus mit
//Schließen Sie das USB-Gerät an den Computer an und verwenden Sie die Methode zur Verwendung von USB-Geräten im Computer, um das anzuschließende Gerät aufzurufen
$pc-> ; useUSB($up);//U-Disk einlegen
$pc->useUSB($um);//USB-Maus einstecken
}
}
//Instanziieren eines Computerbenutzers
$user=new PcUser;
$user->install();//Installieren Sie das Gerät
/*-------------Ausgabeinhalt------ - -------
U-Disk erfolgreich geladen
U-Disk hat funktioniert
U-Disk wurde erfolgreich entladen
USB-Tastatur erfolgreich geladen
USB-Tastatur hat funktioniert
USB-Tastatur wurde erfolgreich entladen
--------------------*/
?>

Stellungnahme:
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