The difference are given below-
“overloading” is having the functions (methods) with the same name but different signatures. You can find overloading in non object oriented languages like C too. Overloading acts on different data types in different ways.
“overriding” is having a methods with same name and same signature in a parent class and the child class. You cant find overloading in non-object oriented languages like C, because they dont have a class concept. Overriding acts on different object types in different ways.
Method overriding is when a child class redefines the same method as a parent class, with the same parameters.
For example, the standard Java class java.util.LinkedHashSet extends java.util.HashSet. The method add() is overridden in LinkedHashSet. If you have a variable that is of type HashSet, and you call its add() method, it will call the appropriate implementation of add(), based on whether it is a HashSet or a LinkedHashSet. This is called polymorphism.
Method overloading is defining several methods in the same class, that accept different numbers and types of parameters. In this case, the actual method called is decided at compile-time, based on the number and types of arguments. For instance, the method System.out.println() is overloaded, so that you can pass ints as well as Strings, and it will call a different version of the method.
Answered by
Raksha
, an ibibo Master,
at
8:38 AM on July 15, 2008