static void Main(string[] args) { List <Animal> animals = new List <Animal>(); string command; while ((command = Console.ReadLine()) != "End") { string[] animalArgs = command.Split(); string[] foodArgs = Console.ReadLine().Split(); string animal = animalArgs[0]; string name = animalArgs[1]; double weight = double.Parse(animalArgs[2]); string foodType = foodArgs[0]; int foodQuantity = int.Parse(foodArgs[1]); try { if (animal == "Hen" || animal == "Owl") { double wingSize = double.Parse(animalArgs[3]); if (animal == "Hen") { Animal hen = new Hen(name, weight, foodType, foodQuantity, wingSize); Console.WriteLine(hen.ToString()); animals.Add(hen); hen.Eat(); } else { Animal owl = new Owl(name, weight, foodType, foodQuantity, wingSize); Console.WriteLine(owl.ToString()); animals.Add(owl); owl.Eat(); } } else if (animal == "Tiger" || animal == "Cat") { string livinRedion = animalArgs[3]; string bread = animalArgs[4]; if (animal == "Tiger") { Tiger tiger = new Tiger(name, weight, foodType, livinRedion, foodQuantity, bread); Console.WriteLine(tiger.ToString()); animals.Add(tiger); tiger.Eat(); } else { Cat cat = new Cat(name, weight, foodType, livinRedion, foodQuantity, bread); Console.WriteLine(cat.ToString()); animals.Add(cat); cat.Eat(); } } else if (animal == "Mouse" || animal == "Dog") { string livingRedion = animalArgs[3]; if (animal == "Mouse") { Mouse mouse = new Mouse(name, weight, foodType, livingRedion, foodQuantity); Console.WriteLine(mouse.ToString()); animals.Add(mouse); mouse.Eat(); } else { Dog dog = new Dog(name, weight, foodType, livingRedion, foodQuantity); Console.WriteLine(dog.ToString()); animals.Add(dog); dog.Eat(); } } } catch (ArgumentException ae) { Console.WriteLine(ae.Message); } } foreach (Animal animal in animals) { if (animal is Bird) { var bird = (Bird)animal; Console.WriteLine($"{bird.GetType().Name} [{bird.Name}, {bird.WingSize}, {bird.Weight}, {bird.FoodQuantity}]"); } else if (animal is Feline) { var feline = (Feline)animal; Console.WriteLine($"{feline.GetType().Name} [{feline.Name}, {feline.Bread}, {feline.Weight}, {feline.LivingRegion}, {feline.FoodQuantity}]"); } else { var mimmal = (Mammal)animal; Console.WriteLine($"{mimmal.GetType().Name} [{mimmal.Name}, {mimmal.Weight}, {mimmal.LivingRegion}, {mimmal.FoodQuantity}]"); } } }