gpt4 book ai didi

delphi - 属性不继承?

转载 作者:行者123 更新时间:2023-12-03 18:34:17 25 4
gpt4 key购买 nike

我试过属性并假设它们是继承的,但事实并非如此:

type
[MyAttribute]
TClass1 = class
end;

TClass2 = class(TClass1)
end;

虽然 TClass2 继承自 Class1,但它没有属性“MyAttribute”。是否有可能使属性可继承?或者我是否必须在类层次结构中向上搜索属性?

最佳答案

属性是类或其他符号(例如方法)的装饰。属性修饰声明,但不是类的特征。因此,属性不会被继承。

是的,您可以在类层次结构中向上查找属性,但还有更好的解决方案。使用空接口(interface) (IMyInterface = Interface) 作为“标记”接口(interface)。接口(interface)实现类的所有后代也将是该接口(interface)的实现者。您需要确保的是您的基类实现了 IInterface,如果您的基类是从 TInterfacedObject 或 TComponent 派生出来的,就已经是这种情况了。

完成此操作后,您可以使用 Supports 函数来测试该类或其祖先之一是否实现了该接口(interface)。

关于delphi - 属性不继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com