1、文件Flyable.java
public interface Flyable
{
void fly();
}
2、AirPlane.java
public class AirPlane implements Flyable {
public AirPlane()
{
System.out.println("AirPlane构造函数中");
}
@Override
public void fly() {
// TODO 自动生成的方法存根
System.out.println("AirPlane->fly()");
}
}
3、Bird.java
public class Bird implements Flyable
{
public Bird()
{
System.out.println("Bird 构造函数中");
}
@Override
public void fly()
{
System.out.println("Bird ->fly()");
}
}
4、FlyChecker.java
public class FlyChecker implements Flyable
{
private Flyable fTMP;
public FlyChecker(Flyable f1)
{
System.out.println("FlyChecker构造函数中");
this.fTMP = f1;
}
@Override
public void fly()
{
// TODO 自动生成的方法存根
System.out.println("FlyChecker->fly()");
this.fTMP.fly();
}
}
5、
public class Test
{
public static void main(String[] argc)
{
Flyable f1 = CreateFlayable(1);
f1.fly();
Flyable f2 = CreateFlayable(2);
f2.fly();
}
static Flyable CreateFlayable(int i)
{
Flyable tmp;
if (i%2 == 0)
tmp = new Bird();
else
tmp = new AirPlane();
//return tmp;
return new FlyChecker(tmp);
}
}
输出结果:
AirPlane构造函数中
FlyChecker构造函数中
FlyChecker->fly()
AirPlane->fly()
Bird 构造函数中
FlyChecker构造函数中
FlyChecker->fly()
Bird ->fly()