UnitUnit1;Interface usesWindows, Messages, sysutils, variants, Classes, Graphics, Controls, Forms, Dialogs, Stdctrls;typeDefining interfaces if the interface is independent of a file, the interface file is referenced in the application and in the implementation program; ICar =Interface(IInterface) [' {ed52e264-6683-11d7-b847-001060806215} ']procedureDrive End; Interface implementation Class 1, must join Tinterfacedobject to use; Tcar = Class (Tinterfacedobject,icar) PublicProcedure Drive; End; Interface implementation Class 2, must join Tinterfacedobject to use; Thousecar = Class (Tinterfacedobject,icar) PublicprocedureDrive End; TForm1 = Class (Tform) Button1:tbutton;procedureButton1Click (Sender:tobject);Private{Private declarations} Public{Public declarations}functionGetcar:icar; There are other ways in which you can get ICAR, such as in a DLL file; End;varForm1:tform1;Implementation{$R *.DFM} {Tcar}proceduretcar.drive;beginShowMessage (' tcar.drive '); End; {Thousecar}procedurethousecar.drive;beginShowMessage (' thousecar.drive '); End;procedureTform1.button1click (Sender:tobject);varS:icar;beginS:= Getcar; s.drive; End;functionTForm1.getCar:ICar;beginResult:=thousecar.create; Here is the key point of the whole implementation;//or result:=tcar.create; End; End.