On 2014-03-12 20:51, Sean Kelly wrote:
And this argument is absolutely correct, in my experience. By making virtuality an explicit choice, the library designer is specifying that a given function is a part of the published interface for a class and overriding it has some explicit purpose that will be maintained over time.
There's a book, Effective Java, that recommends all methods should be marked as final unless explicitly intended to be overridden. The argument is that a class needs to be explicitly designed for subclassing.
-- /Jacob Carlborg
