8/14/2015 final keyword in Java javatpoint
Content Menu ▼
Final Keyword In Java
The final keyword in java is used to restrict the user. The java final
keyword can be used in many context. 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. We will have detailed learning of these. Let's first learn
the basics of final keyword.
1) Java
final
variable
If you make
any variable
as final, you
cannot change
the value of
final
variable(It
will be
constant).
Example of final variable
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 Bike9{
. final int speedlimit=90;//final variable
http://www.javatpoint.com/finalkeyword 1/5
8/14/2015 final keyword in Java javatpoint
. void run(){
. speedlimit=400;
. }
. public static void main(String args[]){
. Bike9 obj=new Bike9();
. obj.run();
. }
. }//end of class
Test it Now
Output:Compile Time Error
2) Java final method
If you make any method as final, you cannot override it.
Example of final method
. 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();
. }
. }
Test it Now
Output:Compile Time Error
3) Java final class
If you make any class as final, you cannot extend it.
Example of final class
http://www.javatpoint.com/finalkeyword 2/5
8/14/2015 final keyword in Java javatpoint
. final class Bike{}
.
. class Honda1 extends Bike{
. void run()
{System.out.println("running safely with 100kmph");}
.
. public static void main(String args[]){
. Honda1 honda= new Honda();
. honda.run();
. }
. }
Test it Now
Output:Compile Time Error
Q) Is final method inherited?
Ans) Yes, final method is inherited but you cannot override it. For
Example:
. class Bike{
. final void run(){System.out.println("running...");}
. }
. class Honda2 extends Bike{
. public static void main(String args[]){
. new Honda2().run();
. }
. }
Test it Now
Output:running...
Q) What is blank or uninitialized final variable?
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.
http://www.javatpoint.com/finalkeyword 3/5
8/14/2015 final keyword in Java javatpoint
It can be initialized only in constructor.
Example of blank final variable
. class Student{
. int id;
. String name;
. final String PAN_CARD_NUMBER;
. ...
. }
Que) Can we initialize blank final variable?
Yes, but only in constructor. For example:
. class Bike10{
. final int speedlimit;//blank final variable
.
. Bike10(){
. speedlimit=70;
. System.out.println(speedlimit);
. }
.
. public static void main(String args[]){
. new Bike10();
. }
. }
Test it Now
Output:70
static blank final variable
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.
Example of static blank final variable
. class A{
. static final int data;//static blank final variable
http://www.javatpoint.com/finalkeyword 4/5
8/14/2015 final keyword in Java javatpoint
. static{ data=50;}
. public static void main(String args[]){
. System.out.println(A.data);
. }
. }
Q) What is final parameter?
If you declare any parameter as final, you cannot change the value
of it.
. class Bike11{
. int cube(final int n){
. n=n+2;//can't be changed as n is final
. n*n*n;
. }
. public static void main(String args[]){
. Bike11 b=new Bike11();
. b.cube(5);
. }
. }
Test it Now
Output:Compile Time Error
Q) Can we declare a constructor final?
No, because constructor is never inherited.
← prev next →
http://www.javatpoint.com/finalkeyword 5/5