Liskov Substitution Principle Rules
The Liskov Substitution Principle states that Subtypes must be substitutable for their base types.
- Do not violate a Contract by either [[strenghtening precondition]]s or [[weakening postcondition]]s;
- Do not violate Covariance/[[Contravariance]], explicitly mark the [[generic parameters]] by [[in-out keywords]] if possible.