Can we declare the main () method as final in Java?

JavaObject Oriented ProgrammingProgramming

Yes, we can declare the main () method as final in Java. The compiler does not throw any error.

  • If we declare any method as final by placing the final keyword then that method becomes the final method.
  • The main use of the final method in Java is they are not overridden.
  • We can not override final methods in subclasses.
  • If we are using inheritance and we need some methods not to overridden in subclasses then we need to make it final so that those methods can't be overridden by subclasses.
  • We can access final methods in the subclass but we can not override final methods.


class BaseClass {
   public final void show(Object o) {
      System.out.println("BaseClass method");
class DerivedClass extends BaseClass {
   public void show(Integer i) {
      System.out.println("DerivedClass method");
public class Test {
   public static final void main(String[] args) { // declaring main () method with final keyword.
      BaseClass b = new BaseClass();
      DerivedClass d = new DerivedClass(); Integer(0)); Integer(0));


BaseClass method
DerivedClass method
Updated on 06-Feb-2020 11:11:06