我找到了一些使用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
Run Code Online (Sandbox Code Playgroud)
据我所知,使用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
Run Code Online (Sandbox Code Playgroud)
以下代码打印:
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
Run Code Online (Sandbox Code Playgroud)
因此两种方法在覆盖方面的工作方式相同.virtual关键字是否会改变我遗漏的内容?
Pon*_*dle 17
从帮助文档中(如果您使用的是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
Run Code Online (Sandbox Code Playgroud)
所以在AS3中,虚拟绝对没有.
| 归档时间: |
|
| 查看次数: |
6691 次 |
| 最近记录: |