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();
}
}
Method Overriding in Java - Video Tutorial
To understand "Java Method Overriding" in more depth, please watch this video tutorial.
Keep W3schools Growing with Your Support!
❤️ Support W3schools