title: Changing Collection type from Interface to Implementing class
body: <p>If I have an interface with a method that returns a collection of something, is it possible to return an implementation of the collection type instead?</p>
  
  <p>For example:</p>
  
  <pre><code>public interface IVehicle
  {
      IEnumerable&lt;Part&gt; GetParts(int id);
  }
  
  public class Car : IVehicle
  {
      List&lt;Part&gt; GetParts(int id)
      {
          //return list of car parts
      }
  }
  
  public class Train : IVehicle
  {
      IEnumerable&lt;Part&gt; GetParts(int id)
      {
          //return IEnumerable of train parts
      }
  }
  </code></pre>
  
  <p>If not, why not?</p>
  
  <p>At least to me, this makes sense.</p>