Delphi抽象类避免实现
发布时间:2020-12-15 09:21:42 所属栏目:大数据 来源:网络整理
导读:在 this问题中,您看到可以创建添加抽象keywrod的抽象类.我正在Delphi中翻译一个项目,但我发现它允许创建一个抽象类.这是代码: type TCableSPF = class abstract //codeend; 这是一个抽象类,当然我有很多实现它的子类.顺便说一句,我看到可以创建一个这样的实
在
this问题中,您看到可以创建添加抽象keywrod的抽象类.我正在Delphi中翻译一个项目,但我发现它允许创建一个抽象类.这是代码:
type TCableSPF = class abstract //code end; 这是一个抽象类,当然我有很多实现它的子类.顺便说一句,我看到可以创建一个这样的实例; a := TCableSPF.Create; 当我尝试调用其虚拟和抽象的方法时,我得到了错误,这是可以的,但我可以阻止创建类吗?或者Delphi默认允许这个?谢谢您的帮助 解决方法
类摘要是Delphi对.Net日的延续.
由于未知原因,此关键字后面没有(当前)实现. 如果要阻止抽象类的实例化,此关键字将无济于事.而是执行以下操作: type TCableSPF = class abstract //code strict protected //Define all constructors for an abstract class as protected. constructor Create; virtual; reintroduce; end; 通过将所有构造函数定义为protected,只有后代对象可以访问构造函数,其他代码无法访问构造函数. unit A; type TMyAbstractObject = class abstract(TObjectX) strict protected constructor Create; virtual; reintroduce; end; ... unit B; TMyClass = class of TObjectX; AbstractObjectInstance = TMyClass.Create; //Will not work for TMyAbstractObject 请注意,您不应声明构造函数覆盖.而是声明它虚拟重新引入(或者如果你不想允许虚拟构造函数则重新引入). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |