У меня есть абстрактный класс:Могу ли я хранить данные в абстрактном базовом классе?
type
TInterfaceMethod = class abstract
public
destructor Destroy; virtual; abstract;
function GetBasePlan: Word; virtual; abstract;
procedure CountBasePlan; virtual; abstract;
procedure Calculate; virtual; abstract;
procedure PrepareForWork; virtual; abstract;
end;
и производный класс:
type
TFogelMethod = class(TInterfaceMethod)
private
matrix: TFogelMatrix;
BasePlan: Word;
public
constructor Create(var matr: TFogelMatrix);
procedure Calculate;
function GetBasePlan: Word;
procedure CountBasePlan;
procedure PrepareForWork;
destructor Destroy;
end;
Вопрос заключается в том, могу ли я поставить реализацию GetBasePlan и CountBasePlan методов в базовый класс, сделать их только виртуальный - не абстрактно, как сейчас, - а также разместить там базовый план? Таким образом, я могу это сделать:
type
TInterfaceMethod = class abstract
private
BasePlan: Word;
public
destructor Destroy; virtual; abstract;
function GetBasePlan: Word; virtual;
procedure CountBasePlan; virtual;
procedure Calculate; virtual; abstract;
procedure PrepareForWork; virtual; abstract;
end;
В случае, если я могу это сделать, это будет хорошо с точки зрения объектно-ориентированного проектирования, и как я могу точно этот элемент из производных классов?
Спасибо за добавление ;-) – 2008-11-30 21:47:53