Ja gut, aber das kann auch auf eine einfache Klasse oder Prozedur zutreffen:
Delphi-Quellcode:
procedure LiesDatenEin(Param: Integer);
begin
case ParamOderRechteOderIrgendwas of
1: LiesXML;
2: LiesCSV;
3: LiesWWW;
end;
end;
Hier ist es für die Benutzung der Prozedur auch unerheblich, was sie intern macht.
Nicht ganz richtig - in deinem Beispiel ergibt sich aus dem übergebenen Parameter, was sie intern tut.
Bei einem Interface sollte bei einem IKannFliegen.Flieg immer klar sein, was diese Methode macht.
Dementsprechend ist für den Aufrufer der Methode egal, obs durch Flügelschlagen oder Nachbrenner zünden passiert - hauptsache das Ding fliegt.
Wenn man sich nicht drauf einlässt, dass ein Interface (genau wie eine abstrakte Klasse) eine Abstraktion ist - kann man die Geschichte mit den Interfaces auch gleich wieder vergessen.