Originally posted by Jeroen Wenting:
...
Question remains what the point in overriding an concrete method with an abstract method actually is.
Given that derived classes should provide more (specific) behaviour compared to their parents it seems to go against OO principles to actually remove functionality by overriding a concrete method with an abstract one.
The new subclass that contains the overriding abstract method would be an abstract class. The abstract class could not be instantiated. Instead, the abstract class would just serve as an abstract superclass that requires any concrete subclass to provide a new implementation of the abstract method.
As I mentioned earlier, it is unlikely that you would find something like that in the first revision of a product. It is more likely that you would find something like that in a later revision where new functionality is has been added that was not envisioned by the original design team.