[fpc-pascal] Inherit interface from 2 interfaces

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Tue Apr 12 11:42:11 CEST 2011



On Tue, 12 Apr 2011, Andreas Dorn wrote:

> On Fri, 8 Apr 2011,michael.vancanneyt worte:
>> The whole idea of interfaces is to avoid multiple inheritance.
>> 
> Hm. I don't believe that.
>
> One of the major points of interfaces is indeed to avoid the problems
> of multiple class inheritance (diamond problems - i.e. problems caused by
> conflicting implementations of a method in different ancestor classes).
>
> But Interfaces themselves don't have an implementation, so those
> diamond problems simply don't exist for them.

Of course they do. If they inherit from 2 interfaces that have the same
method with a different signature, you have a problem.

InterfaceA = Interface
   Function IsValid : Integer;
end;

InterfaceB = Interface
   Function IsValid : String;
end;

How to define :

InterfaceC = Interface(InterfaceA,InterfaceB)

Michael.



More information about the fpc-pascal mailing list