Was hat das Schlüsselwort virtual in actionscript, nicht?

Ich habe einige code, der verwendet die virtual Schlüsselwort für Funktionen, wie:

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

Soweit ich das verstanden habe mit der virtual Schlüsselwort sollte die Art und Weise ändern überschreiben einer Methode arbeitet, oder wie mit einem Kind-Methode funktionieren würde, oder so etwas. Aber es scheint, dass es überhaupt nichts macht. Mit der Dateiendung:

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

Folgende code druckt:

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

Also beide Methoden funktionieren auf die gleiche in Bezug auf die überschreibung. Hat die virtual keyword verpasst etwas, was ich bin fehlt?

InformationsquelleAutor LopSae | 2010-02-12
Schreibe einen Kommentar