You are on page 1of 8

Final keyword in Java

Dr. Kuppusamy .P
Associate Professor / SCOPE
Final keyword
• The final keyword is a non-access modifier used for classes, attributes (variables)
and methods.
• It restricts the user in changing the values of classes, methods and variables i.e.,
impossible to inherit or override.
• Final variable used to create constant variables.
• Final methods are used for restrict the method overriding
• Final classes can be used for preventing inheritance.
Final variable:
• It must be initialized. It can be initialized in three ways such as during declaration.
E.g., variable store the same value always such as PI=3.14159
• If final variable does not initialized during declaration is called blank final variable
or uninitialized final variable. E.g., final int radius;
• Blank final variable can be initialized in the constructor only.
• If final variable is static that will be initialized in the static block only.
• static final double PI = 3.14; // final static variable PI
• static final double PI; // blank final static variable
Final keyword in variable
class CircleArea{
final int radius=9; //final variable
void area(){
radius =25;
}
public static void main(String args[]){
CircleArea obj=new CircleArea();
obj.area();
}
}

// Output:Compile Time Error


Final keyword in blank variable
class CircleArea{
final int radius; //blank final variable

CircleArea(int i){ //initialize inside the constructor


radius =i;
}
void area(){
double a =3.14 * radius * radius;
System.out.printlb(:Area “= +a);
}
public static void main(String args[]){
CircleArea obj=new CircleArea(10);
obj.area();
}
}
Final keyword in static blank variable
class CircleArea{
static final double PI; //blank final variable

static { //initialize inside the static block


PI = 3.14;
}
void area(int radius){
double a =PI * radius * radius;
System.out.printlb(:Area “= +a);
}
public static void main(String args[]){
CircleArea obj=new CircleArea();
obj.area(10);
}
}
Final keyword in method
• Final methods are used for restrict the method overriding
class A
{
final void m1()
{
System.out.println("This is a final method.");
}
}
class B extends A
{
void m1()
{
System.out.println(“Not allowed!");
}
} // COMPILE-ERROR! Cannot override the final
method in parent class A.
Final keyword in class
• Final classes can be used for preventing inheritance.

final class A
{
// methods and data fields
}
// The following class is illegal.
class B extends A
{
}

// COMPILE-ERROR! Can’t create subclass for


final class A
References

• Herbert Schildt, “Java: The Complete Reference”, McGraw-Hill Education, Tenth


edition, 2017.
• Joyce Farrell, “Java Programming”, Cengage Learning, Eighth Edition, 2016.
• Mark Lassoff, “Java Programming for Beginners”, Pack Publishing, 2017

Dr. Kuppusamy P

You might also like