The final keyword in java is used to restrict the user. The final keyword can be used in many context. Final can be:
1. Vriable
2. Method
3. Class
If you make any variable as final, you cannot change the value of final variable(It will be constant).
There is a final variable speedlimit, we are going to change the value of this variable, but It can’t be changed because final variable once assigned a value can never be changed.
class Bike { final int speedlimit=90;//final variable void run() { speedlimit=400; } public static void main(String args[]) { Bike obj=new Bike(); obj.run(); } }
Output: Compile time error
Final Method:
If you make any method final you can not override it.
class Bike { final void run() { System.out.println("running"); } } class Honda extends Bike{ void run() { System.out.println("running safely with 100kmph"); } public static void main(String args[]) { Honda honda= new Honda(); honda.run(); } }
Output: Compile time error
final class:
If you make any class final you can not extend it.
final class Bike { // final class here } class Honda extends Bike { void run() { System.out.println("running safely with 100kmph"); } public static void main(String args[]) { Honda honda= new Honda(); honda.run(); } }
Output: Compile time error
Q1. Is final method inherited?
Yes, final method is inherited but you cannot override it.
Q2. Can we declare constructor as final?
No, because construtor is never inherited.