title: C# Interface Implementation relationship is just "Can-Do" Relationship?
body: <p>Today somebody told me that interface implementation in C# is just "Can-Do" relationship, not "Is-A" relationship. This conflicts with my long-time believing in LSP(Liskov Substitution Principle). I always think that all inheritance should means "Is-A" relationship. </p>
  
  <p>So, If interface implementation is just a "Can-Do" relationship. What if there is a interface "IHuman" and "IEngineer", and one class "Programmer" inherits  from "IHuman" &amp; "IEngineer"? Surely, a "Programmer" Is A "IHuman" and A "IEngineer". </p>
  
  <p>If it is just "Can-Do" relationship, does it mean we cannot expect the "Programmer" instance behavior may be different between when treated as a IHuman and treated as IEngineer?</p>