Method overriding is used to provide the specific implementation of a method which is already provided by its superclass.
Method overriding is used for runtime polymorphism.
xxxxxxxxxx
class Animal {
public void displayInfo() {
System.out.println("I am an animal.");
}
}
class Dog extends Animal {
@Override
public void displayInfo() {
System.out.println("I am a dog.");
}
}
class Main {
public static void main(String[] args) {
Dog d1 = new Dog();
d1.displayInfo();
}
}
xxxxxxxxxx
// A Simple Java program to demonstrate
// method overriding in java
// Base Class
class Parent {
void show()
{
System.out.println("Parent's show()");
}
}
// Inherited class
class Child extends Parent {
// This method overrides show() of Parent
@Override
void show()
{
System.out.println("Child's show()");
}
}
// Driver class
class Main {
public static void main(String[] args)
{
// If a Parent type reference refers
// to a Parent object, then Parent's
// show is called
Parent obj1 = new Parent();
obj1.show();
// If a Parent type reference refers
// to a Child object Child's show()
// is called. This is called RUN TIME
// POLYMORPHISM.
Parent obj2 = new Child();
obj2.show();
}
}
xxxxxxxxxx
Method Overloading:
Access modifier can be same or different,
Return-Type can be same or different,
Parameters MUST be different, Method name MUST be same,
any method can be overloaded
Method Overriding:
After a method is inherited it is possible to change
the implantation of the method in the child class.
This concept is called overriding.
Method name, Parameter, and Return-Type MUST be same
access modifier MUST be same or more visible,
MUST happen in the sub class,
ONLY the instance methods can be overridden
@Override annotation MUST be applicable.
Static and Constructor cannot be override.
We can use the @Override annotation before the method
to declare the overriding.
EXAMPLE: get method WebDriver driver = new ChromeDriver();
driver.get("URL") ==> opens the url from chrome
xxxxxxxxxx
public class Multi{ //Super class
public void multi(){
………………
}
}
Public class Multiplication extends Multi(){
Public void multi(){
………..
}
Public static void main(String args[]){
Multi multiplication = new Multiplication(); //Polimorphism is applied
multiplication.multi(); // It calls the Sub class add() method
}
}
xxxxxxxxxx
Overriding means same method name and same parameter,
occur in different class that has
inheritance relationship.
we use method overriding to implement
specific functionality to the method.