相关疑难解决方法(0)

当我在基类上调用方法时,如何调用后代的实现?

我的顶级课程是TBaseDB,有一个后代TCommonDB(,并且TCommonDB将有多个后代,像TProdDBTDevDB).

让我们在每个类定义中创建一个函数,称为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定义:

  1. 我可以声明我的变量为TBaseDB,
  2. 创建的类可以是TBaseDBTCommonDB,和
  3. 适当的 Test程序将取决于实例是一个被称为TBaseDB还是TCommonDB

delphi inheritance

3
推荐指数
1
解决办法
477
查看次数

标签 统计

delphi ×1

inheritance ×1