PHP Multiple Inheritance with Interfaces

Ich versuche zu verstehen, wie die Verwendung von Schnittstellen zu Mehrfachvererbung führt, wenn ich google.

class A
{
 function do1(){}
 function do2(){}
 function do3(){}
}

class B extends A
{
 function do4(){}
 function do5(){}
 function do6(){}
}

class C extends B
{
}

Im obigen Beispiel hat Klasse C alle Methoden der Klasse A und B. Klasse B hat jedoch auch alle Methoden der Klasse A, was nicht unbedingt erwünscht ist.

Meine Suche ergab, dass Schnittstellen verwendet werden, um dieses Problem zu lösen, indem Methoden in eine Klasse verschoben und Schnittstellen erstellt werden (siehe unten).

interface A
{
     function do1();
     function do2();
     function do3();
}

interface B
{
     function do4();
     function do5();
     function do6();
}

class C implements A, B
{
     function do1(){}
     function do2(){}
     function do3(){}
     function do4(){}
     function do5(){}
     function do6(){}
}

Ich verstehe nicht wirklich, wie dies das Problem löst, da sich der gesamte Code in der neuen Klasse befindet. Wenn ich nur die Klasse A wie ursprünglich verwenden wollte, müsste ich eine neue Klasse erstellen, die die Schnittstelle A implementiert, und denselben Code in die neue Klasse kopieren.

Fehlt mir etwas?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage