Java - Final Modifier

1 - About

Final is modifier prohibiting value modification.

3 - Type

3.1 - Class

Declaring an entire class final prevents the class from being subclassed.

This is particularly useful, for example, when creating an immutable class like the String class.

An interface cannot be final

3.2 - Method

You use the final modifier in a method declaration to indicate that the method cannot be overridden by subclasses.

You might wish to make a method final if it has an implementation that should not be changed and it is critical to the consistent state of the object.

Example of using a final method for initializing an instance variable:

class Whatever {
    private varType myVar = initializeInstanceVariable();
    protected final varType initializeInstanceVariable() {

        //initialization code goes here

This is especially useful if subclasses might want to reuse the initialization method. The method is final because calling non-final methods during instance initialization can cause problems.

Methods called from constructors should generally be declared final. If a constructor calls a non-final method, a subclass may redefine that method with surprising or undesirable results.

3.3 - Member

The modifier final indicate that the value of a member will never change

The final modifier indicates that the value of a field cannot change.

The reference to final variable is thread safe since it can never be changed.

A final member can be initialized through:

  • an Initializer expression

final int myFinalValue = 5;
final int myFinalValue = myFunction();

protected final int  initializeInstanceVariable() {

        // initialization code goes here
        myFinalValue = 5;

Data Science
Data Analysis
Data Science
Linear Algebra Mathematics

Powered by ComboStrap