接口的多重继承

Fab*_*zio 6 delphi inheritance interface multiple-inheritance

有没有办法定义从两个或多个接口继承的接口?

我在Delphi2007上尝试了以下代码:

  IInterfaceA = interface
     procedure A;
  end;

  IInterfaceB = interface
    procedure B;
  end;

  IInterfaceAB = interface(IInterfaceA, IInterfaceB);
Run Code Online (Sandbox Code Playgroud)

..和它提出了错误IInterfaceAB = interface(IInterfaceA, IInterfaceB)的路线IInterfaceAB = interface(IInterfaceA, IInterfaceB).

Uwe*_*abe 9

Delphi中没有多接口继承,因为Delphi中根本没有多重继承.您所能做的就是让类一次实现多个接口.

TMyClass = class(TInterfacedObject, IInterfaceA, IInterfaceB)
Run Code Online (Sandbox Code Playgroud)


Zdr*_*nev 6

在Delphi中,接口不能继承多个接口,但是类可以实现多个接口.如果正确设计组件(查看ISP - 接口隔离原则),则不需要从接口继承接口.