Delphi 如何将接口名称映射到不同的方法名称?

Delphi 如何将接口名称映射到不同的方法名称?,delphi,interface,Delphi,Interface,如果我有一个实现接口的对象,它会自动将接口方法映射到默认情况下具有相同名称和签名的类的方法上。是否有任何方法可以重写此方法并将接口方法映射到具有相同签名但名称不同的方法?(这可能很有用,例如,如果我实现了两个接口,两个接口都有一个具有相同名称和签名的方法,并且我希望能够使用它们做不同的事情。)这确实是可能的。这种技术被称为。这是欧文答案的一个代码示例 type ISomeInterface = interface procedure SomeMethod; end; IOt

如果我有一个实现接口的对象,它会自动将接口方法映射到默认情况下具有相同名称和签名的类的方法上。是否有任何方法可以重写此方法并将接口方法映射到具有相同签名但名称不同的方法?(这可能很有用,例如,如果我实现了两个接口,两个接口都有一个具有相同名称和签名的方法,并且我希望能够使用它们做不同的事情。)

这确实是可能的。这种技术被称为。

这是欧文答案的一个代码示例

type
  ISomeInterface = interface
    procedure SomeMethod;
  end;

  IOtherInterface = interface
    procedure SomeMethod;
  end;

  TSomeClass = class(TInterfacedObject, ISomeInterface, IOtherInterface)
  public
    procedure ISomeInterface.SomeMethod = SomeInterfaceSomeMethod;    
    procedure IOtherInterface.SomeMethod = OtherInterfaceSomeMethod;    

    procedure SomeMethod;                // TSomeClass.SomeMethod
    procedure SomeInterfaceSomeMethod;   // ISomeInterface.SomeMethod
    procedure OtherInterfaceSomeMethod;  // IOtherInterface.SomeMethod
  end;

谢谢我知道我在什么地方见过这样的事情,但我不记得是怎么做到的。