Dav*_*vid 5 delphi inheritance
在Delphi中,给出以下内容:
TFruit = class;
TFruitClass = class of TFruit;
TApple = class(TFruit);
TRedApple = class(TApple);
Run Code Online (Sandbox Code Playgroud)
如果我有一个TFruitClass变量,我怎么能知道它是否继承TApple?比如说我有
var
FruitClass: TFruitClass;
...
FruitClass := TRedApple;
Run Code Online (Sandbox Code Playgroud)
TApple在这种情况下,如何验证FruitClass是否确实继承了?使用FruitClass is TApple只适用于类实例.
Mar*_*ema 13
使用InheritsFrom:
if TApple.InheritsFrom(TFruit) then
...
Run Code Online (Sandbox Code Playgroud)
你也可以使用
var
Fr: TFruitClass;
X: TObject;
begin
if X.InheritsFrom(TFruit) then
Fr := TFruitClass(X.ClassType);
end;
Run Code Online (Sandbox Code Playgroud)