Gut, man muss einmal drüber stolpern und weiß es dann. Aber steht das irgendwo geschrieben, dass es so ist? Oder gibt es vielleicht sogar einen Grund?
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE}
{$R *.res}
procedure someProc(param: IInterface); overload;
begin
//
end;
procedure someProc(param: TObject); overload;
begin
//
end;
begin
someProc(nil); // er springt in someProc(const param: TObject);
readln;
end.
Immerhin kann man sich darüber stören dass das nicht mit der
IDE-Vorschau ("Code Insight"?) übereinstimmt, dass beispielsweise die IInterface-Version fett dargestellt wird, aber in Wirklichkeit die TObject-Version aufgerufen wird.