Mehrfache Vererbung in ActionScript 3? Ist es möglich? Ich habe irgendwo gelesen, dass es in as3 möglich ist.
Wenn ja, wie?
das ist meine Doucument Class A.as
%Vor%Eine andere ist Schnittstelle B.as
%Vor%Vielen Dank im Voraus.
Mehrfachvererbung ist in AS nicht möglich. Aber mit Schnittstellen können Sie einige Funktionen der Mehrfachvererbung nachahmen. MI hat große Mängel, vor allem das Diamantproblem: Ссылка Aus diesem Grund unterstützen viele Sprachen keine MI, sondern nur einzelne Vererbung. Wenn Sie Schnittstellen verwenden, scheint es, dass Sie MI anwenden, aber in Wirklichkeit ist das nicht der Fall, da Schnittstellen keine Implementierung, sondern nur ein Versprechen von Funktionalität darstellen.
%Vor%P.S .: Falls Sie sich fragen: Bei Schnittstellen gibt es kein Raute-Problem, da ein Implementierer der Schnittstellen genau eine Implementierung jedes in den Schnittstellen definierten Elements bereitstellen muss. Selbst wenn beide Schnittstellen dasselbe Element (mit der gleichen Signatur natürlich) definieren würden, wird es immer noch nur eine Implementierung geben.
Nun, es gibt keine Möglichkeit der Mehrfachvererbung direkt in AS3 wie viele andere OOP-Sprachen.
Bei OOP geht es darum, Code wiederzuverwenden und wie die meisten von uns den in mehreren Klassen geschriebenen Code wiederzuverwenden. Wenn Sie also wirklich den Code (Logik) anstelle von nur den Signaturen verwenden möchten, sollten Sie composition oder deligation in Betracht ziehen und wahrscheinlich haben Sie das irgendwo gelesen. wie du gesagt hast.
In der Zusammensetzung, was Sie tun, statt eine Basisklasse in Unterklasse zu erben, haben Sie eine Instanz der Basisklasse in einer Unterklasse und haben alle Methoden
%Vor%Dies ist kein Hack, sondern eine echte und praktische Implementierung, die von erfahrenen Entwicklern in vielen Entwurfsmustern übernommen wurde.
Hoffe, das hilft
Sie können die Mehrfachvererbung über die Schnittstelle durchführen.
%Vor%
Hmm, Jungs!
Ich kann Ihnen zwei verschiedene Möglichkeiten aufzeigen, um Mehrfachvererbung zu "imitieren":
Verwenden der Funktion #import: Ссылка
Vergessen Sie nicht, dass ActionScript EcmaScript ist. Es ist immer noch eine prototypische Sprache: Ссылка
Ich weiß ... nicht "echten" MI, aber sie sehen aus wie eine Ente, sprechen wie eine Ente ...
Tags und Links flash actionscript-3 flex