13 Java Polymorphism - Final Keyword
13 Java Polymorphism - Final Keyword
The java ‘final’ keyword can be used in many contexts. Final can be:
1. variable
2. method
3. class
The final keyword can be applied with the variables, a final variable that have no value it is
called blank final variable or uninitialized final variable. It can be initialized in the
constructor only. The blank final variable can be static also which will be initialized in the
static block only.
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.
1. class Bike9{
2. final int speedlimit=90;//final variable
3. void run(){
4. speedlimit=400;
5. }
6. public static void main(String args[]){
9. }
10. }
Output:
Compile Time Error
1. class Bike{
2. final void run(){System.out.println("running");}
3. }
4.
7.
8. public static void main(String args[]){
11. }
12. }
7.
8. public static void main(String args[]){
11. }
12. }
Ans) Yes, final method is inherited but you cannot override it. For Example:
1. class Bike{
2. final void run(){System.out.println("running...");}
3. }
4. class Honda2 extends Bike{
7. }
8. }
Output:
running...
A final variable that is not initialized at the time of declaration is known as blank final
variable.
If you want to create a variable that is initialized at the time of creating object and once
initialized may not be changed, it is useful. For example, PAN CARD number of an
employee.
1. class Student{
2. int id;
3. String name;
4. final String PAN_CARD_NUMBER;
5. ...
6. }
1. class Bike10{
2. final int speedlimit;//blank final variable
3.
4. Bike10(){
5. speedlimit=70;
6. System.out.println(speedlimit);
7. }
8.
11. }
12. }
Output: 70
A static final variable that is not initialized at the time of declaration is known as static blank
final variable. It can be initialized only in static block.
1. class A{
2. static final int data;//static blank final variable
3. static{
4. data=50;
5. }
6. public static void main(String args[]){
7. System.out.println(A.data);
8. }
9. }
If you declare any parameter as final, you cannot change the value of it.
1. class Bike11{
2. int cube(final int n){
5. }
6. public static void main(String args[]){
7. Bike11 b=new Bike11();
8. b.cube(5);
9. }
10. }