Liskov Substitution Principle

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