ho trovato un po 'di codice che utilizza la parola chiave virtual
per funzioni, come:Cosa fa la parola chiave virtuale, in actionscript?
package tryOut{
public class Parent {
public function Parent() {}
public function foo():void{
trace("Parent foo");
}//foo
public virtual function bar():void{
trace("Parent virtual bar");
}//bar
}//class
}//package
Per quanto ho capito utilizzando la parola chiave virtual
dovrebbe modificare il modo in cui l'override un metodo funziona, o il modo in cui si utilizza un metodo di bambino avrebbe lavoro, o qualcosa del genere. Ma sembra che non faccia nulla. Avendo l'estensione:
package tryOut {
public class Child extends Parent {
public function Child() {}
public override function foo():void {
trace("Child foo");
}//foo
public override function bar():void {
trace("Child virtual bar");
}//bar
}//class
}//package
Il codice seguente stampa:
var parent:Parent = new Parent();
var child:Child = new Child();
parent.foo(); //Parent foo
child.foo(); //Child foo
parent.bar(); //Parent virtual bar
child.bar(); //Child virtual bar
var childCast:Parent = child as Parent;
parent.foo(); //Parent foo
childCast.foo(); //Child foo
parent.bar(); //Parent virtual bar
childCast.bar(); //Child virtual bar
Quindi entrambi i metodi funzionano allo stesso modo per quanto riguarda l'override. La parola chiave virtual
modifica qualcosa che mi manca?
E la pagina attuale è, per chiunque sia interessato: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3_Flex/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9b.html – LopSae
Grazie LopSae, in realtà mi è capitato di avere Flash aperto al momento, quindi Ho usato l'aiuto offline. – Ponkadoodle