Explain the terms- Substitutability and Extensibility
Substitutability - The objects of a properly derived class can be safely and easily substituted for an object of its base class.
Extensibility - Properly derived class can be safely and freely used in place of its base class even if properly derived class is created a lot later than defining user code. Extending functionalities of a system is a lot easier when you add a properly derived class comprising enhanced functionalities.