相关疑难解决方法(0)

使用类引用的多态性和继承?

下面的控制台应用程序的输出是

Parent
Parent
Parent
Run Code Online (Sandbox Code Playgroud)

代替

Parent
Child1
Child2
Run Code Online (Sandbox Code Playgroud)

为什么会这样?此外,如何获得预期的输出?非常感谢 !

PS:看完这篇相关的SO帖后仍然没有线索......

program Project1;

{$APPTYPE CONSOLE}

type
  TParent = class;
  TParentClass = class of TParent;

  TParent = class
  public
    ID: string;
    constructor Create;
  end;

  TChild1 = class(TParent)
  public
    constructor Create;
  end;  

  TChild2 = class(TParent)
  public
    constructor Create;
  end;

constructor TParent.Create;
begin
  ID := 'Parent';
end;

constructor TChild1.Create;
begin
  ID := 'Child1';
end;    

constructor TChild2.Create;
begin
  ID := 'Child2';
end;

procedure Test(ImplClass: TParentClass);
var
  ImplInstance: TParent;
begin
  ImplInstance := ImplClass.Create; …
Run Code Online (Sandbox Code Playgroud)

delphi reference class

5
推荐指数
1
解决办法
211
查看次数

标签 统计

class ×1

delphi ×1

reference ×1