0% found this document useful (0 votes)
63 views

Final Keyword: Sensitivity: Internal & Restricted

The document discusses the final keyword in Java and how it can be used to restrict modification of variables and prevent overriding of methods and inheritance of classes. It provides examples of applying final to variables, methods, and classes and explains why certain code would result in compile-time errors.

Uploaded by

Arun Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views

Final Keyword: Sensitivity: Internal & Restricted

The document discusses the final keyword in Java and how it can be used to restrict modification of variables and prevent overriding of methods and inheritance of classes. It provides examples of applying final to variables, methods, and classes and explains why certain code would result in compile-time errors.

Uploaded by

Arun Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Final Keyword

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 1


Agenda

final keyword

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 2


final Keyword

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 3


Keyword final
 The final keyword used in context of behavioral restriction on:
 variables
 methods
 classes
 Using final on variables to make them behave as constants which we have seen in earlier
module.
 When a variable is made final – it can be initialized only once either by
 Declaration and initialization
final int x=10;
 Using constructor
 System allows you to set the value only once; after which it can’t be changed.

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 4


Quiz
What will be the output for the below code ?

public class Sample {


final double pi; public static void main() {
Sample ob = new
public Sample() Sample(22/7)
{
pi = 3.14; System.out.println(ob.
pi);
} }
public Sample(double pi)
{
this.pi = pi;
}

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 5


The Role of the Keyword final in Inheritance
 The final keyword has two important uses in the context of a class hierarchy. These
uses are highlighted as follows:

 Using final to Prevent Overriding


 While method overriding is one of the most powerful feature of object oriented
design, there may be times when you will want to prevent certain critical
methods in a superclass from being overridden by its subclasses.
 This can be achieved by declaring such critical methods as final.

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 6


Keyword final with methods- Example
/* Example for final methods*/
class GBase {
public final void display(String s){
System.out.println(s);
}
}
class Sample extends GBase{
public void display(String s) {
System.out.println(s);
}
public static void main(String args[]) {
Sample ob = new Sample();
ob.display("TRY ME");
} Output:
} Compile Time Error : Cannot override the final method from GBase

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 7


The Role of the Keyword final in Inheritance (Contd.).
Sometimes you will want to prevent a class from being inherited.

 This can be achieved by preceding the class declaration with final.


 Declaring a class as final implicitly declares all of its methods as final too.

 It is illegal to declare a class as both abstract and final since an abstract class.

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 8


final methods- Example
final class GBase {
public void display(String s){
System.out.println(s);
}
}
class Sample extends GBase{
public void display(String s)
{
System.out.println(s);
}
public static void main(String args[]) {
Sample ob = new Sample();
ob.display("TRY ME");
Output: Explain Why this CTE occurs?
}
} Compile Time Error :
The type Sample cannot subclass the final class GBase

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 9


Quiz

What will be the output for the below code ?

class abstract GBase{


public final void testBase(){
System.out.println(“Hello World”);
}
}

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 10


Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 11
Thank You

Sensitivity: Internal & Restricted © 2017 Wipro wipro.com confidential 12

You might also like