Чтобы создать экземпляр класса, вам необходимо переопределить все методы, которые объявлены как виртуальные абстрактные.Даже если вы их не используете.
Если вы действительно хотите обойти это, вы можете использовать пустые методы.Но я не буду рекомендовать это.
И добавить еще немного информации по теме:
Метод является абстрактным, если он объявлен с помощью виртуального резюме:
procedure MyMethod(const AMyParameter: Integer); virtual; abstract;
Общая информация: Вы даже можете переопределить метод как абстрактный:
procedure MyMethod(const AMyParameter: Integer); override; abstract;
Вам необходимо переопределить эти методы для создания экземпляров этого класса.
И вы можете объявить целый класс как абстрактный:
type
TMyClass = class abstract (TMyAncestor)
end;
Вы получаете предупреждение, если пытаетесь создать экземпляр этого класса.
Аналогом является запечатанный класс:
type
TMyClass = class sealed (TMyAncestor)
end;
Вы получаете предупреждение, если выпопытайтесь наследовать от этого класса.
Вы также можете запечатать методы, но для этого вам нужно ключевое слово final.
procedure MyMethod(const AMyParameter: Integer); override; final;