Understanding the `final` Keyword in Java

Answered using GPT-4o-mini by Java Q&A Hub

Question:

What is the final keyword in Java?

Answer:

In Java, the final keyword is used to declare constants, prevent method overriding, and prevent inheritance. It can be applied to variables, methods, and classes, and its behavior varies depending on where it is used:

  1. Final Variables: When a variable is declared as final, it means that its value cannot be changed once it has been assigned. This is often used to define constants.

    final int MAX_VALUE = 100;
    // MAX_VALUE = 200; // This would cause a compilation error
    
  2. Final Methods: A method declared as final cannot be overridden by subclasses. This is useful when you want to ensure that the behavior of a method remains consistent and cannot be altered.

    class Parent {
        final void display() {
            System.out.println("This is a final method.");
        }
    }
    
    class Child extends Parent {
        // void display() { // This would cause a compilation error
        //     System.out.println("Trying to override.");
        // }
    }
    
  3. Final Classes: A class declared as final cannot be subclassed. This is useful for creating immutable classes or to prevent further inheritance.

    final class ImmutableClass {
        // Class implementation
    }
    
    // class SubClass extends ImmutableClass { // This would cause a compilation error
    // }
    

In summary, the final keyword in Java is a modifier that restricts the modification of variables, methods, and classes, providing a way to enforce certain behaviors in your code.