Lew said:
Why should a public method usually not be final?
Depends on whether you subscribe to the thesis that all methods should be final
unless they have been specifically designed to be overridden. I don't myself,
but I do think there's a lot to be said for the idea.
If you don't, then the reason is simply that methods should usually not be
final unless there is a specific reason to make them so.
BTW, there is another thesis to the effect that an object should not invoke its
own public methods unless they are intended specifically to be overridden. If
you do follow that pattern (which I admit I don't, though I probably should
make more effort to do so), then overriding public methods is always safe, so
there is no reason to make them final.
-- chris