I have seen that final keyword mainly can be used with

1)      Class level variable

2)      method

3)      class

4)      Objects


1) If a final is assigned to a variable , the variable becomes a constant. It means that the value of variable once assigned  cannot be changed. The variable behaves like a

final int i=0;

i =5; // error


2) If a final is assigned to a method than it cannot be overridden in its child Class.


Class Parent {


Public final void print(){






Class Child extends Parent{


Public final void print(){             // error cannot override final method






3) If a class is made as final, then no other class can extend it and make it as parent class. Eg String,Integer


4) final objects are instantiated only once. i.e


final Map map = new HashMap();




map = new HashMap();  // error