The Liskov Substitution Principle is a fundamental concept in object-oriented programming, stating that objects of a superclass should be replaceable with objects of a subclass without affecting the correctness of the program.
No man, for any considerable period, can wear one face to himself and another to the multitude, without finally getting bewildered as to which may be the true.