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

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

Методы, предназначенные для переопределения в подклассах, объявляются с ключевым словом 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 при переопределении абстрактных методов обязательно, поскольку абстрактные методы являются разновидностью виртуальных.