我的顶级类是TBaseDB
,它有一个后代TCommonDB
(,并且TCommonDB
将有多个后代,比如TProdDB
and TDevDB
)。
让我们在每个类定义中创建一个函数,称为Test1
. 现在,它所做的ShowMessage('Some literal')
只是向我展示正在执行的代码。
直到运行时我才知道类类型。我想要有共同的代码,但不同的行为。
我想要的是这样的:
var
MyObj: TBaseDB;
begin
//pseudo-code...
if RadioButton1.Checked then
MyObj := TBaseDB.Create
else
MyObj := TCommonDB.create;
MyObj.Test1;
end;
我似乎无法让它工作,我想它在我的班级定义中。应该如何Test1
定义,以便:
- 我可以将我的变量声明为
TBaseDB
, - 创建的类可以是
TBaseDB
或TCommonDB
, 和 - 将根据实例是 a还是?调用正确的过程
Test
TBaseDB
TCommonDB