title: What does it mean to program to an interface?
body: <p>I keep hearing the statement on most programming related sites:</p>
  <blockquote>
  <p>Program to an interface and not to an Implementation</p>
  </blockquote>
  <p>However I don't understand the implications?<br />
  Examples would help.</p>
  <p>EDIT: I have received a lot of good answers even so could you'll supplement it with some snippets of code for a better understanding of the subject. Thanks!</p>