在Delphi中,给出以下内容:
TFruit = class;
TFruitClass = class of TFruit;
TApple = class(TFruit);
TRedApple = class(TApple);
如果我有一个
TFruitClass
变量,如何确定它是否继承自TApple
?例如。说我有var
FruitClass: TFruitClass;
...
FruitClass := TRedApple;
在这种情况下,如何验证FruitClass确实是从
TApple
继承的?使用FruitClass is TApple
仅适用于类实例。 最佳答案
使用InheritsFrom:
if TApple.InheritsFrom(TFruit) then
...
您也可以使用
var
Fr: TFruitClass;
X: TObject;
begin
if X.InheritsFrom(TFruit) then
Fr := TFruitClass(X.ClassType);
end;
关于delphi - 找出Delphi ClassType是否从其他ClassType继承吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4443330/