Difference Between Overloading and Overriding
Advertisements
Difference Between Overloading and Overriding in Java
Method overloading deals with the notion of having two or more methods in the same class with the same name but different arguments.
Method overriding means having two methods with the same arguments, but different implementations. One of them would exist in the parent class, while another will be in the derived, or child class.
In case of method overloading, parameter must be different. In case of method overriding, parameter must be same.
.In java, method overloading can't be performed by changing return type of the method only. Return type can be same or different in method overloading. But you must have to change the parameter. Return type must be same or covariant in method overriding.
Example Method Overloading in Java
Example Method Overloading in Java
class OverloadingExample { static int add(int a,int b) { return a+b; } static int add(int a,int b,int c) { return a+b+c; } }
Example Method Overriding in Java
Example Method Overriding in Java
class Animal{ void eat(){System.out.println("eating..."); } } class Dog extends Animal { void eat() { System.out.println("eating bread..."); } }
Difference between Overloading and Overriding in Java
Overloading | Overriding |
---|---|
Whenever same method or Constructor is existing multiple times within a class either with different number of parameter or with different type of parameter or with different order of parameter is known as Overloading. | Whenever same method name is existing multiple time in both base and derived class with same number of parameter or same type of parameter or same order of parameters is known as Overriding. |
Arguments of method must be different at least arguments. | Argument of method must be same including order. |
Method signature must be different. | Method signature must be same. |
Private, static and final methods can be overloaded. | Private, static and final methods can not be override. |
Access modifiers point of view no restriction. | Access modifiers point of view not reduced scope of Access modifiers but increased. |
Also known as compile time polymorphism or static polymorphism or early binding. | Also known as run time polymorphism or dynamic polymorphism or late binding. |
Overloading can be exhibited both are method and constructor level. | Overriding can be exhibited only at method label. |
The scope of overloading is within the class. | The scope of Overriding is base class and derived class. |
Overloading can be done at both static and non-static methods. | Overriding can be done only at non-static method. |
It is used to increase the readability of the program. | It is used to provide the specific implementation of the method that is already provided by its super class. |
It is performed within class. | It occurs in two classes that have IS-A (inheritance) relationship. |
It is the example of compile time polymorphism. | It is the example of compile run polymorphism. |
For overloading methods return type may or may not be same. | For overriding method return type should be same. |
Google Advertisment