Based on an anonymous posting on Rubygarden. Use this when a method in the base class returns an instance of the base class instead of an instance of the derived class.