I guess you can either ask for a "like I'm five" explanation, or ask what happens deep in the language :P
"final" means that thing doesn't change, simple as that.
As for a deeper explanation considering Java, "final" tells the compiler that this element can be accessed/used without all the usual safe checking, allowing it to use such elements in multi-threaded processes without needing to synchronize it.
Yes, on it's own, the final modifier prevents a class from being extended. There are some workarounds for that, like delegating the final class calls through another (Foo is final, so you create Bar with the same interface as Foo, make it redirect every call to Foo's methods, and then extend Bar when you need. This is specially useful when you have absolutely no way of changing the code and still want to reuse it's functionalities)
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I guess you can either ask for a "like I'm five" explanation, or ask what happens deep in the language :P
"final" means that thing doesn't change, simple as that.
As for a deeper explanation considering Java, "final" tells the compiler that this element can be accessed/used without all the usual safe checking, allowing it to use such elements in multi-threaded processes without needing to synchronize it.
There's a great answer here: stackoverflow.com/questions/273695...
Does it prevent extension?
Yes, on it's own, the final modifier prevents a class from being extended. There are some workarounds for that, like delegating the final class calls through another (Foo is final, so you create Bar with the same interface as Foo, make it redirect every call to Foo's methods, and then extend Bar when you need. This is specially useful when you have absolutely no way of changing the code and still want to reuse it's functionalities)