Liskov Substitution Principle, LSP)
Definition strict expression:
If the object O1 of each type T1 has a type T2 object O2, the behavior of the program P does not change when all program P defined in T1 is converted to O2, and the behavior of the program P does not change, then the type T2 It is the subtype of type T1.
Simply put, the subclass can appear in any place where the base class can appear.
Understanding from the perspective of code reconstruction:
Western thinking, whether the square is a problem of rectangular subclasses.
This example means the difference between the Libraries and the usual mathematical law and the common sense of life.
It should be inherited from abstract classes without inheriting from a specific class.