- Can’t change value of variable if marked as final. It is best practice to mark method parameter as final if its value will not changes. Variable must be initialize either using Initializer block / constructor OR assignment during declaration. It is threading safe.
- Method marked as final can’t be override. Generally, those we put final method while defining abstraction functionalty where we can’t changes a defined functionality.
- Class marked as final can’t be inheriting by anyother class.
- String class is final class that’s why we can’t override its methods.