title: Does Liskov Substitution Principle also apply to classes implementing interfaces?
body: <p>1) Does LSP also apply to interfaces, meaning that we should be able to use a class implementing a specific interface and still get the expected behavior? </p>
  
  <p>2) If that is indeed the case, then why is programming to an interface considered a good thing ( BTW- I know that programming to an interface increases loose coupling ), if one of the main reasons against using inheritance is due to risk of not complying to LSP? Perhaps because:</p>
  
  <p>a) benefits of loose coupling outweight the risks of not complying to LSP</p>
  
  <p>b) compared to inheritance, chances that a class ( implementing an interface ) will not adher to LSP are much smaller </p>
  
  <p>thank you</p>