Абстрактные методы

Методы, предназначенные для переопределения в подклассах, объявляются с ключевым словом abstract и называются абстрактными. Данные методы являются виртуальными, но ключевое слово virtual использовать не нужно. Например:

type
  Shape = class
  private
    x,y: integer;
  public
    constructor Create(xx,yy: integer);
    begin
      x := xx;
      y := yy;
    end;
    procedure Draw; abstract;
  end;

Классы, содержащие абстрактные методы, также называются абстрактными. Экземпляры этих классов создавать нельзя.

Классы с абстрактными методами используются как "полуфабрикаты" для создания других классов. Например:

type
  Point = class(Shape)
  public
    procedure Draw; override;
    begin
      PitPixel(x,y,Color.Black);
    end;
  end;

Использование override при переопределении абстрактных методов обязательно, поскольку абстрактные методы являются разновидностью виртуальных.