Elaborate on Liskov Substitution Principle as used in C++ OOD
Is the Liskov Substitution Principle limited to Object Oriented Design (OOD) in C++ only or it has application in other programming languages such as Fortran or JAVA? If this principle cannot be adapted and applied, then which other similar design principle can be used for program design in FORTRAN or JAVA? How important is this principle to code maintenance and upgrade? Is it necessary to follow this principle? Will the work be less efficient if the Liskov principle is not followed?