Абстрактные члены - это просто виртуальные участники, которые вы должны переопределить. Вы используете это для чего-то, что должно быть реализовано, но не может быть реализовано в базовом классе.
Если вы хотите создать виртуальное свойство и хотите, чтобы он был переопределен в классе, который наследует ваш класс, тогда вы сделаете его абстрактным свойством.
Если вы, например, имеете класс животных, его способность дышать не удастся раскрыть только из информации о том, что это животное, но это что-то очень важное:
public abstract class Animal {
public abstract bool CanBreathe { get; }
}
Для рыбы и собаки реализация будет другой:
public class Dog : Animal {
public override bool CanBreathe { get { return !IsUnderWater; } }
}
public class Fish : Animal {
public override bool CanBreathe { get { return IsUnderWater; } }
}