Liskov Substitution Principle
Subtypes must be substitutable for their supertypes without breaking client code. Preserve behavioral contracts.
Subtypes must be substitutable for their supertypes without breaking client code. Preserve behavioral contracts.