static void Main(string[] args)
        {
            var duck   = new WildDuck();
            var turkey = new WildTurkey();

            var cook = new Client();

            Base  myBase         = new Base();
            Base  myBaseAsChild  = new Child();
            Child myChildAsChild = new Child();

            myBase.DoSomething();
            myBaseAsChild.DoSomething();
            myChildAsChild.DoSomething();

            Console.WriteLine("Cook will cook duck");
            cook.CookDuck(duck);

            Console.WriteLine("Cook will cook turkey");
            cook.CookTurkey(turkey);

            Console.WriteLine("Cook will cook WILD DUCK");
            cook.CookWildDuck(duck);

            Console.WriteLine("Cook will cook WILD TURKEY as a WILD DUCK");
            WildTurkeyToWildDuck wildTurkeyIntoWildDuck = new WildTurkeyToWildDuck(turkey);

            Console.WriteLine("Before Cooking: " + wildTurkeyIntoWildDuck.Flavor());
            cook.CookWildDuck(wildTurkeyIntoWildDuck);


            Console.WriteLine("Cook is gonna cook a turkey, but he does not know!");
            cook.CookDuck(new TurkeyDuckAdapter(turkey));



            //Console.WriteLine("\nLets make the turkey walk!");
            //turkeyDuckWannaBe.Walk();

            //Console.WriteLine("\n\n\nTurn for the real duck");
            //coolDuck.Walk();

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            var duck = new WildDuck();
            var turkey = new WildTurkey();

            var cook = new Client();

            Base myBase = new Base();
            Base myBaseAsChild = new Child();
            Child myChildAsChild = new Child();

            myBase.DoSomething();
            myBaseAsChild.DoSomething();
            myChildAsChild.DoSomething();

            Console.WriteLine("Cook will cook duck");
            cook.CookDuck(duck);

            Console.WriteLine("Cook will cook turkey");
            cook.CookTurkey(turkey);

            Console.WriteLine("Cook will cook WILD DUCK");
            cook.CookWildDuck(duck);

            Console.WriteLine("Cook will cook WILD TURKEY as a WILD DUCK");
            WildTurkeyToWildDuck wildTurkeyIntoWildDuck = new WildTurkeyToWildDuck(turkey);
            Console.WriteLine("Before Cooking: " + wildTurkeyIntoWildDuck.Flavor());
            cook.CookWildDuck(wildTurkeyIntoWildDuck);

            Console.WriteLine("Cook is gonna cook a turkey, but he does not know!");
            cook.CookDuck(new TurkeyDuckAdapter(turkey));

            //Console.WriteLine("\nLets make the turkey walk!");
            //turkeyDuckWannaBe.Walk();

            //Console.WriteLine("\n\n\nTurn for the real duck");
            //coolDuck.Walk();

            Console.ReadLine();
        }
 public WildTurkeyToWildDuck(WildTurkey turkey)
 {
     this.turkey = turkey;
 }
 public WildTurkeyToWildDuck(WildTurkey turkey)
 {
     this.turkey = turkey;
 }