Я думаю, что вы пытаетесь использовать абстрактный класс Animal неправильно. Похоже, вы пытаетесь сделать что-то более похожее на это:
public class Zoo
{
public string ZName;
public string City;
public int Capacity;
public List<Animal> Animals = new List<Animal>();
public Zoo(string name, string city, int capacity)
{
ZName = name;
City = city;
Capacity = capacity;
}
public void addAnimal(Animal animal)
{
Animals.Add(animal);
}
}
public abstract class Animal
{
public abstract string AName { get; set; }
public abstract int Age { get; set; }
public abstract bool Female { get; set; }
}
public class Tiger : Animal
{
public override string AName { get; set; }
public override int Age { get; set; }
public override bool Female { get; set; }
}
public class Lion : Animal
{
public override string AName { get; set; }
public override int Age { get; set; }
public override bool Female { get; set; }
}
Я создал небольшое консольное приложение, чтобы продемонстрировать это, используя классы выше:
static void Main(string[] args)
{
var myZoo = new Zoo("Fun Zoo", "New York", 20);
myZoo.addAnimal(new Tiger { Age = 10, AName = "Frank", Female = true });
myZoo.addAnimal(new Lion { Age = 11, AName = "Fred", Female = false });
Console.WriteLine("Here's the new zoo:");
Console.WriteLine("Zoo Name: " + myZoo.ZName + ", City: " + myZoo.City + ", Capacity: " + myZoo.Capacity);
Console.WriteLine();
Console.WriteLine("Animals at the zoo:");
foreach (var a in myZoo.Animals)
{
Console.WriteLine("Name: " + a.AName + ", Age: " + a.Age + ", Is Female: " + a.Female);
}
Console.ReadLine();
}
Результаты:
![enter image description here](https://i.stack.imgur.com/e5ijV.png)