Используйте абстракцию, когда все подклассы имеют для реализации метода / свойства. Если нет необходимости в каждом подклассе для его реализации, то не используйте его.
Что касается вашего примера, если SecondName
не требуется для каждого человека, тогда нет необходимости создавать абстрактное свойство в базовом классе. Если, с другой стороны, каждый человек нуждается во втором имени, то делает его абстрактным.
Пример правильного использования абстрактного свойства:
public class Car
{
public abstract string Manufacturer { get; }
}
public class Odyssey : Car
{
public override string Manufacturer
{
get
{
return "Honda";
}
}
}
public class Camry : Car
{
public override string Manufacturer
{
get
{
return "Toyota";
}
}
}
Создание Maker
реферат правильный, потому что у каждого автомобиля есть производитель, и ему необходимо сообщить пользователю, кто этот производитель.