I ist ja nicht von Typ
TMyClass sondern von Typ
ICombo. ICombo war definiert als
Delphi-Quellcode:
type
ICombo = interface(IFoo, IBar)
procedure ChewBubbleGum;
end;
und erbt daher die Methoden von
IFoo und
IBar. Sowohl IFoo als auch IBar deklarieren die Methode
Hello. Ein Aufruf von
I.Hello wäre jetzt nicht eindeutig. Ist jetzt
IFoo.Hello oder
IBar.Hello gemeint. Dabei ist es uninteressant, das beide Methoden in der Klasse
TMyClass auf die selbe Methode verweisen, da das auch weiterhin nicht zwingend der Fall ist. TMyClass könnte theoretisch auch wie folgt deklariert sein, dadurch würde jedes Interface eine eigene Methode innerhalb von TMyClass "besitzen".
Delphi-Quellcode:
TMyClass = class(TObject, ICombo)
procedure IFoo.Hello = FooHello;
procedure IBar.Hello = BarHello;
procedure FooHello;
procedure BarHello;
procedure Walk;
procedure Talk;
procedure ChewBubbleGum;
end;