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?
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:
a) benefits of loose coupling outweight the risks of not complying to LSP
b) compared to inheritance, chances that a class ( implementing an interface ) will not adher to LSP are much smaller
thank you