Can a final class be subclassed in Java?


The final modifier for finalizing the implementations of classes, methods, and variables.

The main purpose of using a class being declared as final is to prevent the class from being subclassed. If a class is marked as final then no class can inherit any feature from the final class.

You cannot extend a final class. If you try it gives you a compile time error.

Example

final class Super {
   private int data = 30;
}
public class Sub extends Super{
}

Output

C:\Sample>javac Sub.java
Sub.java:7: error: cannot inherit from final Super
public class Sub extends Super{
                         ^
1 error

Sai Subramanyam
Sai Subramanyam

Passionate, Curious and Enthusiastic.

Updated on: 30-Jul-2019

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements