Quote (pzold @ Jun 11 2019 06:23am)
There is a reason. Basically, if you develop a project and, let's say, some person X would like to use your code, then you - as a project developer and author of this code - should decide, how to use this code and how should it work.
So even if you don't extend class Foo in your project personally, some guy X might do so. However, there may be some problems with such an inheritance and you decide that no one should extend this class (or override some method).
That's why you tag a class/method with final keyword.
Thanks!!