1.多态,勉勉强强写的,这应该算个多态的例子把。子类都可以使用父类统一的数据类型。
package {
import flash.display.Sprite;
public class Test extends Sprite {
public function Test() {
var father:Father=new Father();
var son1:Son1=new Son1();
var son2:Son2=new Son2();
dosomething(son1);
dosomething(son2);
}
private function dosomething(obj:Father):void{
obj.tracefunc();
}
}
}
class Father {
public function Father() {
}
public function tracefunc():void {
}
}
class Son1 extends Father {
public function Son1() {
super();
}
override public function tracefunc():void {
trace("son1 is used");
}
}
class Son2 extends Father {
public function Son2() {
}
override public function tracefunc():void {
trace("son2 is used");
}
}
输出:
son1 is used
son2 is used
2.接口,
下面是我试着写接口出现的错误,呵呵,但最终还是解决了。
接口的函数不能包括过程体,接口的函数不能有访问控制。重写接口中函数
的时候不能用override修饰。不能使用新的运算符对接口进行实例化。
package {
import flash.display.Sprite;
public class Test extends Sprite {
public function Test() {
var son1:Son1=new Son1();
var son2:Son2=new Son2();
dosomething(son1);
dosomething(son2);
}
private function dosomething(obj:IFather):void{
obj.tracefunc();
}
}
}
interface IFather {
function tracefunc():void ;
}
class Son1 implements IFather {
public function Son1() {
}
public function tracefunc():void {
trace("son1 is used");
}
}
class Son2 implements IFather {
public function Son2() {
}
public function tracefunc():void {
trace("son2 is used");
}
}
输出:
son1 is used
son2 is used
335

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



