Thanks for your feedback, Vinayak!
Sorry, out books has not been published as hard copies yet. Currently, there are only ebooks available for purchase.
What do you mean?
Hello again, Abelardo.
It mostly makes sense if your code has a lot of conditionals that check whether an object is null and perform some action if so. This "default" behavior usually fits well inside a null object.
The reason why they both get the getAnnualCost method is because you'd want to unify their interfaces.
To achieve that, you'll need to rename the Department's method, but leave the Employe's method intact. If both of these methods had similar implementation, you could pull them to the base class and get rid of the method in subclasses altogether (like with getName).
But here we just assume that that wasn't possible and there are still some need for the overriding. Again, it can play out in different ways in real life.
Hope this makes sense.
Customer support service by UserEcho