Абстрактные методы
Абстрактными называются методы, которые определены в классе, но не содержат никаких действий, никогда не вызываются и обязательно должны быть переопределены в классах-потомках. Абстрактными могут быть только виртуальные и динамические методы. Для описания абстрактного метода используется директива abstract:
Procedure NeverCallMe; virtual; abstract;
Никакого кода абстрактный метод не содержит. Его вызов приведет к созданию исключительной ситуации eAbstractError.
Инкапсуляция
Инкапсуляция представляет собой комбинирование данных (записи, структуры) с процедурами и функциями для получения нового типа данных.
Здесь проводится аналогия с физическими объектами. Конкретные физические свойства определяются данными различных типов. Кроме того, любой физический объект характеризуется и своим поведением во внешнем мире. Поведение объекта задается процедурами и функциями.
Итак, инкапсуляция означает, что методы (коды) и данные одновременно представлены в одной и той же структуре.
Например,
Type
Coordinates = class
x, y : byte;
procedure Init (Xinit, Yinit: byte);
function GetX : byte;
function GetY : byte;
end;