Liskov Substitution principle
Let's remember this definition: subtypes must be substitutable for their base types. This means that this should happen without breaking the execution or losing any other kind of functionality.
You'll notice that this idea lies behind the basic principles of inheritance in the OOP programming paradigm.
If you have a method that requires an argument of the Person
type (let's put it that way), you can pass an instance of another class (Employee
, Provider
, and so on) as long as these instances inherit from Person
.
This is one of the main advantages of well-designed OOP languages, and the most popular and accepted languages support this characteristic.
Back to the code again
Let's take a look at the support inside our sample, where a new requisite arises. Actually, our demo simply calls the subscribers of Mercedes cars and notifies them that a SpeedLimit
event took place.
However, what if we need to know the moment in time in which that circumstance happened and the resulting...