namespace Ch1Duck; public abstract class Duck(IFlyBehaviour flyBehaviour, IQuackBehaviour quackBehaviour) { public abstract void Display(); public void PerformFly() { flyBehaviour.Fly(); } public void PerformQuack() { quackBehaviour.Quack(); } } public class MallardDuck() : Duck(new FlyWithWings(), new NormalQuack()) { public override void Display() { Console.WriteLine("I'm a real Mallard duck"); } }