SOLID OOP development – the Liskov substitution principle
Continuing on our discussion of SOLID OOP development principles, in this guide, we'll walk through the Liskov Substitution Principle (LSP):

When it comes to object-oriented development, the LSP can be slightly confusing to Ruby developers. Part of the confusion comes from the fact that this principle has more of an effect with statically typed languages, such as Java. However, it's still an important concept to understand, so stay tuned and I'll walk you through a practical example of how this applies to all OOP languages.
The LSP definition
To be 100 percent transparent, I struggled through researching this topic. However, what helped me understand it was this:
- Talking it through with a software engineer that I respect (Chase Baker)
- Breaking down the definition into very small pieces
With that in mind, let's walk through a dead simple definition of the concept. The LSP states this:
A program should have the ability to replace any instance...