Yes, Mihail, this is because of not really good example. Abstract class in this article not an abstract class at all, but an interface.
Real problem occurs when you have some implementation in your base class, but then overrides it in ancestor. This what LSP is actually about. (And there's just a simple rule to prevent such a violation)
Yes, Mihail, this is because of not really good example. Abstract class in this article not an abstract class at all, but an interface.
Real problem occurs when you have some implementation in your base class, but then overrides it in ancestor. This what LSP is actually about. (And there's just a simple rule to prevent such a violation)
Bruuuh inheritance is scary lmao