【发布时间】:2008-11-30 21:38:47
【问题描述】:
我有一个抽象类:
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 方法的实现放入基类中,使它们只是虚拟的 - 不像现在那样抽象 - 并将成员 BasePlan 放在那里吗?那么,我可以这样做吗:
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;
如果我能做到,从面向对象设计的角度来看会不会很好,我怎样才能从派生类中准确地访问这个成员?
【问题讨论】:
标签: delphi oop inheritance