procedure TForm1.Button2Click(Sender: TObject); var i: IMyInterface; begin i := TMyClass.Create; i.Proc; ShowMessage("**********"); //在本段程序的最后, 编译器能判断出接口不再有用, 会释放掉拥有它的类
procedure TForm1.Button3Click(Sender: TObject); var c: TMyClass; i: IMyInterface; begin c := TMyClass.Create; i := c; //i := IMyInterface(c); {也可以这样转换} //i := c as IMyInterface; {暂时不能使用 as, 接口拥有 GUID 后才可以使用 as 转换} i.Proc; ShowMessage("**********");
procedure TForm1.Button4Click(Sender: TObject); var i: IMyInterface; begin i := TMyClass.Create; i.Proc; i := nil; //可以这样主动释放接口; 同时拥有它的类也会释放 ShowMessage("**********");