Mehrfachvererbung in ActionScript 3

8

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.

    
Swati Singh 02.02.2012, 05:01
quelle

4 Antworten

73

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.

    
Creynders 02.02.2012, 08:12
quelle
4

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

    
Solow Developer 25.11.2012 18:15
quelle
0

Sie können die Mehrfachvererbung über die Schnittstelle durchführen.

  1. Definieren Sie die Klassen A, B und C. und Definieren Sie die Schnittstelle für die Klassen B und C bzw. iB und iC.
  2. Erweitert einfach die Klasse C auf Klasse A mit dem Schlüsselwort "extend" - direkte Vererbung der Klasse
  3. erweitert Ihre Schnittstelle iC um die Schnittstelle iB.
%Vor%
    
Mrugesh 02.02.2012 08:50
quelle
0

Hmm, Jungs!

Ich kann Ihnen zwei verschiedene Möglichkeiten aufzeigen, um Mehrfachvererbung zu "imitieren":

  1. Verwenden der Funktion #import: Ссылка

  2. 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 ...

    
Szilveszter Safar 12.08.2014 23:23
quelle

Tags und Links