delphi IHERP = interface(IInvokable) 如何创建
时间: 2024-09-11 22:10:46 浏览: 55
在Delphi中,`IHERP = interface(IInvokable)` 表示定义了一个名为 `IHERP` 的接口,这个接口继承自 `IInvokable` 接口。接口在Delphi中是一种允许多重实现的数据类型,它定义了一组方法,这些方法的实现是由实现该接口的具体类提供的。
要创建一个实现了 `IHERP` 接口的对象,你需要定义一个类,并在该类中实现 `IHERP` 接口中声明的所有方法。以下是一个简单的示例:
```delphi
type
IInvokable = interface
['{68D4F700-4D1D-AF77-FD4A5D25518E}']
// 定义接口方法
procedure InvokeMethod;
end;
IHERP = interface(IInvokable)
// 可以在这里添加更多方法
end;
THERPClass = class(TInterfacedObject, IHERP)
protected
procedure InvokeMethod; // 实现接口中的方法
// 如果在 IHERP 接口中声明了其他方法,则同样需要在这里实现它们
end;
procedure THERPClass.InvokeMethod;
begin
// 在这里实现具体的方法逻辑
Writeln('Invoked method from IHERP interface implementation.');
end;
var
HERPInstance: IHERP;
begin
// 创建 IHERP 接口的实例
HERPInstance := THERPClass.Create as IHERP;
// 调用接口中定义的方法
HERPInstance.InvokeMethod;
Readln;
end.
```
在上述代码中:
1. `IInvokable` 是一个基本接口,它声明了 `InvokeMethod` 方法。
2. `IHERP` 继承自 `IInvokable`,因此任何实现了 `IHERP` 的类也需要实现 `InvokeMethod` 方法。
3. `THERPClass` 是实现了 `IHERP` 接口的具体类。
4. 在 `THERPClass` 中重写了 `InvokeMethod` 方法以提供具体实现。
5. 通过 `THERPClass` 的实例化,并将其作为 `IHERP` 接口类型,我们可以在不关心具体类的情况下使用接口调用方法。
创建一个接口实例通常需要通过类的实例化来进行,如示例中的 `HERPInstance := THERPClass.Create as IHERP`。
阅读全文