当前位置:  开发笔记 > 编程语言 > 正文

动作脚本中的虚拟关键字有什么作用?

如何解决《动作脚本中的虚拟关键字有什么作用?》经验,为你挑选了1个好方法。

我找到了一些使用virtual关键字进行函数的代码 ,例如:

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

据我所知,使用virtual关键字应该修改覆盖方法的方式,或者使用子方法的方式可以工作,或者其他什么.但它似乎什么都不做.有延伸:

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

以下代码打印:

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

因此两种方法在覆盖方面的工作方式相同.virtual关键字是否会改变我遗漏的内容?



1> Ponkadoodle..:

从帮助文档中(如果您使用的是Flash,请搜索"虚拟"):

还有一些标识符有时被称为未来的保留字.ActionScript 3.0不保留这些标识符,但其中一些标识符可能被包含ActionScript 3.0的软件视为关键字.您可以在代码中使用许多这些标识符,但Adobe建议您不要使用它们,因为它们可能在该语言的后续版本中显示为关键字.

abstract boolean byte cast

char debugger double enum

export float goto intrinsic

long prototype short synchronized

throws to transient type

virtual volatile

所以在AS3中,虚拟绝对没有.


对于任何感兴趣的人,实际页面都是:http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3_Flex/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9b.html
推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有