private List <IAnimalPresenter> CreateAnimals <T>(string animalType) where T : IAnimalPresenter
        {
            List <IAnimalPresenter> animals = new List <IAnimalPresenter>();
            int numberOfAnimals             = ConsolePresenter.GetInt($"Insert number of {animalType}s: ");

            for (var i = 0; i < numberOfAnimals; i++)
            {
                animals.Add((T)Activator.CreateInstance(typeof(T), ConsolePresenter.GetString($"{animalType} name: ")));
            }

            return(animals);
        }
        public void Start()
        {
            _animals = new List <IAnimalPresenter>();

            _animals.AddRange(CreateAnimals <Cat>("cat"));
            _animals.AddRange(CreateAnimals <Dog>("dog"));
            _animals.AddRange(CreateAnimals <Cow>("cow"));
            _animals.AddRange(CreateAnimals <Sheep>("sheep"));

            foreach (var animal in _animals)
            {
                ConsolePresenter.PrintString(animal.SayHello());
            }
        }