C # - почему я получаю пустую коллекцию?

Почему в коллекции людей есть элементы, только если я переопределил ее в подклассах? Вот код Если я раскомментирую переопределенные методы, то в моей коллекции будет 2 человека в парке.

public class Park : Thing
{
}

public abstract class Thing
{
    public virtual List<Thing> people { get; } = new List<Thing>();
}

public class PersonA : Thing
{
    Thing p;
    public string Name { get; set; }
    public PersonA(Thing p)
    {
        this.p = p;
        Name = "Marry";
        this.p.people.Add(this);
    }
    //public override List<Thing> people => p.people;
}

public class PersonB : Thing
{
    Thing p;
    public string Name { get; set; }
    public PersonB(Thing p)
    {
        this.p = p;
        Name = "Joe";
        this.p.people.Add(this);
    }
    //public override List<Thing> people => p.people;
}

А вот и тестовое приложение:

Thing park = new Park();
park = new PersonA(park);
park = new PersonB(park);

Console.WriteLine(park.people.Count);

Ответы на вопрос(1)

Ваш ответ на вопрос