2010-12-16 13 views
5

Alle,Explizit überschreibende Konstruktoren in ActionScript3

Ich lief in einer anderen Post in diese lustige Sache. Es wurde darauf hingewiesen, dass man einen Konstruktor explizit überschreiben kann ... was nicht notwendig erscheint, und ich bin ein wenig überrascht, dass es sogar kompiliert. Werfen Sie einen Blick:

public class TestClass 
{ 
    public function TestClass() {} 
} 

public class TestClass2 extends TestClass 
{ 
    public override function TestClass2() {} 
} 

Explizit Aufruf Überschreibung auf dem Konstruktor könnte nur ein no-op, da es sicherlich nicht notwendig ist. Meine Frage: Gibt es hier eine Feinheit, die ich vermisse? Überschreibt der Konstruktor explizit den Compiler?

+0

Interessant, hatte ich keine Ahnung. Wenn es jedoch keinen Unterschied gibt, erhöht dies die Anzahl der unglücklicherweise geschriebenen Zeichen. –

+0

@ macke: sicherlich. Wenn es einen Grund gibt, es zu benutzen, dann würde ich es in diesen Fällen berücksichtigen ... aber wenn es keinen Nutzen gibt, würde ich es auch nicht verwenden. Nur verwirrend. –

Antwort

1

Ich denke, es ist nur ein bisschen Freiheit von AS3-Syntax zur Verfügung gestellt :)
imho Bytecode eines swf mit überschriebene contstructor ist gleich einer des swf mit einem normalen

2
public class TestClass 
{ 
    public function TestClass() {} 
} 

public class TestClass2 extends TestClass 
{ 
    public override function TestClass2() { 
     super();//this makes call to the default constructor 
} 
+0

Die Angabe des Schlüsselwortes override ist jedoch nicht erforderlich. Gibt override hier etwas an? –