Java Method Overriding

Declaring a method in the subclass which already exists there in the parent class is known as method overriding. When a class is inheriting a method from a superclass of its own, then there is an option of overriding the method provided it is not declared as final. The advantage of using overriding is the ability to classify a behavior that's specific to the child class, and the child class can implement a parent class method based on its necessity.

There are certain rules that a programmer should follow to implement overriding. These are:

  • In Java, a method can only be written in the child class and not in same class.
  • Argument list should be the same as that of the overridden method of that class.
  • Instance methods can also be overridden if they are inherited by the child class.
  • A constructor cannot be overridden.
  • Final - declared methods cannot be overridden.
  • Any method that is static cannot be used to override.
  • The return type must have to be the same, or a subtype of the return type declared in the original overridden method in the parent class.
  • If a method cannot be inherited, then it cannot be overridden.
  • A child class within the same package as the instance's parent class can override any parent class method that is not declared private or final.
  • A child class in a different package can only override the non-final methods declared as public or protected.

Java Program to Demonstrate Method Overriding

Example:
class college {
 public void move() {
  System.out.println("College is open");
 }
}
class univ extends college {
 public void move() {
  System.out.println("University is open too");
 }
}
public class stud {
 public static void main(String args[]) {
  college a = new college();
  college b = new univ();
  a.move();
  b.move();
 }
}