Wenn eine Klasse nur über das Interface verwendet werden soll, dann erstellt man diese so, dass es nur Sinn macht wenn man das Interface verwendet.
Delphi-Quellcode:
IFoo = interface
procedure Bar;
end;
TFoo = class( TInterfacedObject, IFoo )
protected
procedure Bar;
end;
Oder man erstellt eine Klasse, die sich wie eine normale Klassen-Instanz und wie eine Interface-Instanz verhält, was allerdings etwas mehr Tipparbeit bedeutet.