测试一下AS3的多态性,准备四个类:MyShape,MyCircle,MyQuare,TestShape(测试类)
package

...{
public class MyShape

...{

public function drawShape():void...{
trace("this is MyShape");
}
}
}
package

...{
public class MyCircle extends MyShape

...{

override public function drawShape():void...{
trace("this is MyCircle");
}
}
}
package

...{
public class MySquare extends MyShape

...{

override public function drawShape():void...{
trace("this is MySqure");
}
}
}
package

...{
import flash.display.Sprite;

public class TestShape extends Sprite

...{
public function TestShape()

...{
newShape(new MyCircle());
}

public function newShape(myShape:MyShape):void...{
myShape.drawShape();
}
}
}
输出结果为: "this is MyCircle"
实际应用中MyShape最好写成接口。
package
...{
public class MyShape
...{
public function drawShape():void...{
trace("this is MyShape");
}
}
}
package
...{
public class MyCircle extends MyShape
...{
override public function drawShape():void...{
trace("this is MyCircle");
}
}
}
package
...{
public class MySquare extends MyShape
...{
override public function drawShape():void...{
trace("this is MySqure");
}
}
}
package
...{
import flash.display.Sprite;
public class TestShape extends Sprite
...{
public function TestShape()
...{
newShape(new MyCircle());
}
public function newShape(myShape:MyShape):void...{
myShape.drawShape();
}
}
}输出结果为: "this is MyCircle"
实际应用中MyShape最好写成接口。
本文通过创建四个类(MyShape、MyCircle、MySquare 和 TestShape)来演示 AS3 中的多态性。MyShape 类作为基类,包含一个 drawShape 方法;MyCircle 和 MySquare 分别继承自 MyShape 并重写了该方法。TestShape 类用于实例化子类并调用 drawShape 方法。
688

被折叠的 条评论
为什么被折叠?



