The `final` keyword in Java is used to define constants, prevent method overriding, and create immutable classes. Here are the main uses of the `final` keyword:
1. Final Variables: When applied to a variable, the `final` keyword indicates that the variable's value cannot be changed once initialized.
2. Final Methods: When applied to a method, the `final` keyword indicates that the method cannot be overridden by subclasses. This is commonly used in class inheritance to enforce certain behaviors that should not be modified.
3. Final Classes: When applied to a class, the `final` keyword indicates that the class cannot be subclassed. This is often used to create immutable classes, which cannot be extended or modified.
Here are some examples to illustrate the usage of the `final` keyword:
Final Variables:
public class FinalExample {
final int MAX_VALUE = 100; // Constant variable
public static void main(String[] args) {
FinalExample obj = new FinalExample();
// obj.MAX_VALUE = 200; // Error: Cannot assign a value to a final variable
System.out.println("Maximum value: " + obj.MAX_VALUE);
}
}
```
Final Methods:
class Parent {
final void display() {
System.out.println("Parent's display method");
}
}
class Child extends Parent {
// Error: Cannot override the final method from Parent
// void display() {
// System.out.println("Child's display method");
// }
}
### Final Classes:
final class FinalClass {
// Class members and methods
}
// Error: Cannot inherit from final FinalClass
// class SubClass extends FinalClass {
// // Class members and methods
// }
Final Parameters (Local Variables):
public class FinalParamExample {
void display(final int value) {
// value = 10; // Error: Cannot assign a value to final parameter
System.out.println("Value: " + value);
}
public static void main(String[] args) {
FinalParamExample obj = new FinalParamExample();
obj.display(100);
}
}
In summary, the `final` keyword in Java is used to create constants, prevent method overriding, and create immutable classes, providing important features for ensuring code robustness and security.
Comments
Post a Comment