class Program ...{ static void Main(string[] args) ...{ Duck duck = new MiniDuck(); duck.fly(); FlyBehavior Fly = new FlyRocketPowered(); duck.SetFlyBehavior=Fly; duck.fly(); } } public abstract class Duck ...{ public FlyBehavior flyBehavior; public void fly() ...{ flyBehavior.fly(); } public FlyBehavior SetFlyBehavior ...{ set ...{ this.flyBehavior = value; } } } public class MiniDuck:Duck ...{ public MiniDuck() ...{ this.flyBehavior = new FlyWithWing(); } } /**//// <summary> /// 飞行的接口申明 /// </summary> public interface FlyBehavior ...{ void fly(); } /**//// <summary> /// 实现飞行的接口 /// </summary> public class FlyWithWing : FlyBehavior ...{ public void fly() ...{ Console.Write("我是能飞的"); } } public class FlyRocketPowered : FlyBehavior ...{ public void fly() ...{ Console.Write("有火箭带也能飞"); } }