Liskov Substitution Principle
A subtype must preserve the behavioral contract and correctness properties expected by callers of its base type.
A subtype must preserve the behavioral contract and correctness properties expected by callers of its base type.