コード例 #1
0
        static void Main(string[] args)
        {
            Animal[] animals =
            {
                new Tiger(),
                new Deer(),
                new Horse(),
                //new Bird(),
                new Snake(),
                new Cow(),
                //new Animal(),
                new Crocodile(),
                new Parrot(),
                // new Reptile(),
                new Camel(),
                //new Mammal(),
                //new Cat(),
                new Eagle(),
                new Dog(),
            };



            foreach (var animal in animals)
            {
                if (animal.IsDomestic)
                {
                    Console.Write("Domestic ");
                }
                Console.WriteLine("Animal is " + animal);

                Console.WriteLine(animal.Move());
                Console.WriteLine(animal.Eat());
                Console.WriteLine(animal.Breed());

                //de-abstraction <--- NOT RECOMMENDED!
                //HuntIfYouAreATiger(animal);

                //re-abstraction
                HuntIfYouAreAHunter(animal);

                RideIfRideable(animal);

                Console.WriteLine(animal.Die());

                Console.WriteLine();
            }

            Console.WriteLine("Special Eagle's Death");
            Eagle eagle = new Eagle();

            Console.WriteLine(eagle.Die());
        }