Schnittstelle – Problem mit der Duplizierung mehrerer PHP-Schnittstellenmethoden

WBOY
Freigeben: 2016-08-18 09:16:27
Original
941 Leute haben es durchsucht

<code>interface A {
    public function code();
}

interface B {
    public function code(string $string);
}

class C implements A,B {
//...code
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn C diese beiden Schnittstellen gleichzeitig implementieren muss, gibt es dann eine Möglichkeit, die Codemethoden in den beiden Schnittstellen A und B gleichzeitig zu verwenden? ? ? ?

Lokale Tests können nur eine dieser Methoden verwenden

Antwortinhalt:

<code>interface A {
    public function code();
}

interface B {
    public function code(string $string);
}

class C implements A,B {
//...code
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn C diese beiden Schnittstellen gleichzeitig implementieren muss, gibt es dann eine Möglichkeit, die Codemethoden in den beiden Schnittstellen A und B gleichzeitig zu verwenden? ? ? ?

Lokale Tests können nur eine dieser Methoden verwenden

PHP kann nicht überladen werden (gleicher Methodenname, aber Parameter sind inkonsistent) und kann bei der Vererbung überschrieben werden (gleicher Methodenname, unabhängig davon, ob die Parameter konsistent sind).
Mit anderen Worten, egal wie sich die Parameter von PHP ändern, solange der Methodenname derselbe ist, wird er als dieselbe Methode dieser Klasse betrachtet.

Natürlich können wir als dynamische Sprache die Überladung von Java durch magische Methoden simulieren. Referenz: http://php.net/manual/en/lang...

Es gibt eine grobe Methode: Sie integrieren die spezifische Logik der AB-Schnittstelle in die C-Schnittstelle und rufen die C-Schnittstelle direkt auf^_^

func_get_args http://php.net/manual/en/func...

Diese Art des Schreibens selbst ist nur ein Versuch und Irrtum. Die öffentlichen Methoden werden nicht in jedem Port gleich geschrieben.

Sie können mehr über die Eigenschaften von PHP erfahren.

php unterstützt keinen Polymorphismus, daher ist es am besten, diese Schreibweise zu vermeiden

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!