Method Overshadowing in Java

Method Overshadowing is another name given to method overriding.

In Inheritance when a method in a subclass has the same name and type signature as a method in its superclass, then the method in the subclass is said to override the method in the superclass.

 Here the method in the subclass is overshadowing the method in the superclass.

When an overridden method is called from within a subclass, it will always refer to the version of that method defined by the subclass.

If we want to explicitly call the method defined in the superclass then we can use the super keyword.

super.method_name  i.e the method we want to call of superclass.

Method Overriding in Java

  • When a method in a subclass has the same name and type signature as a method in its superclass, then the method in the subclass is said to override the method in the superclass.
  •  When an overridden method is called from within a subclass, it will always refer to the version of that method defined by the subclass. The version of the method defined by the superclass will be hidden.
  •  Method overriding occurs only when the names and the type signatures of the two methods are identical. If they are not, then the two methods are simply overloaded.
Why Use Method Overriding?

Overridden methods allow Java to support run-time polymorphism.

Polymorphism is essential to object-oriented programming for one reason:

it allows a general class to specify methods that will be common to all of its derivatives, while allowing subclasses to define the specific implementation of some or all of those methods. Overridden methods are another way that Java implements the “one interface, multiple methods” aspect of polymorphism.