我的顶级课程是TBaseDB,有一个后代TCommonDB(,并且TCommonDB将有多个后代,像TProdDB和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;
Run Code Online (Sandbox Code Playgroud)
我似乎无法让这个工作,我想它是在我的班级定义.应该如何Test1定义:
TBaseDB,TBaseDB或TCommonDB,和Test程序将取决于实例是一个被称为TBaseDB还是TCommonDB?