Casting interfaces to objects
It is now possible to cast an interface variable directly to a class variable using either safe or unsafe typecasts.
  TPerson = class(TObject, ISwimmer)
  swimmer : ISwimmer;
  person : TPerson;
  swimmer := TPerson.Create;
  person := swimmer as TPerson;
  person := TPerson(swimmer);
Further reading
Allen Bauer (Emb.) on the inner workings of this feature.
Malcolm Groves (Emb.) introduces casting interfaces to objects.
Barry Kelly shows how to cast an interface to an object prior to the release of this feature.
Hallvard Vassbotn shows another way to cast an interface to an object for earlier versions of Delphi.
Eric Grange compares the performance of casting an interface to an object using the "as" keyword versus returning the object via an interface method.