overrinding é quando uma subclasse tem uma implementação do metodo diferente daquele da classe principal. logo, overriding é usado quando se deseja uma implementação personalizada do metodo herdado.
metodo sem overriding:
class Vehicle{
void run(){System.out.println("Vehicle is running");}
}
class Bike extends Vehicle{
public static void main(String args[]){
Bike obj = new Bike();
obj.run();
}
}
//com overriding
class Vehicle{
void run(){System.out.println("Vehicle is running");}
}
class Bike2 extends Vehicle{
void run(){System.out.println("Bike is running safely");}
public static void main(String args[]){
Bike2 obj = new Bike2();
obj.run();
}