Restrictions applied to Java static methods

Java 8Object Oriented ProgrammingProgramming

If the static keyword is applied to any method, it becomes a static method.

If a method is declared as static, it is a member of a class rather than belonging to the object of the class. It can be called without creating an object of the class. A static method also has the power to access static data members of the class.

There are a few restrictions imposed on a static method

  • The static method cannot use non-static data member or invoke non-static method directly.

  • The this and super cannot be used in static context.

  • The static method can access only static type data (static type instance variable).

  • There is no need to create an object of the class to invoke the static method.

  • A static method cannot be overridden in a subclass

Let us see what happens when we try to override a static method in a subclass


 Live Demo

class Parent {
   static void display() {
      System.out.println("Super class");    
public class Example extends Parent {
   void display()  // trying to override display() {
      System.out.println("Sub class");  
   public static void main(String[] args) {
      Parent obj = new Example();

This generates a compile time error. The output is as follows − error: display() in Example cannot override display() in Parent
void display()  // trying to override display()
overridden method is static
1 error
Updated on 26-Jun-2020 15:50:46