I have an abstract class:
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;
and derived class:
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;
The question is, can I put the GetBasePlan and CountBasePlan methods in the base class, make them only virtual - and not abstract, as it is now - and also place the base plan there? So, can I do this:
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;
In case I can do this, will it be good from the point of view of object-oriented design and how can I accurately access this member from derived classes?
source share