Open In App

Function Overloading vs Function Overriding in Programming

Last Updated : 17 Apr, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Function Overloading allows multiple functions with the same name but different parameters, enabling the same function name to perform different tasks based on input parameters. On the other hand, Function Overriding is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its parent class, enabling the subclass to inherit the features of the parent class and add new features.

Function Overloading vs Function Overriding

Function Overloading vs Function Overriding

Function Overloading:

In some programming languages, function overloading or method overloading refers to the ability to create multiple functions having the same name but different implementations. When a user calls an overloaded function only a specific implementation will be called that has appropriate context concerning the calling statement. This allows one function call to perform different tasks based on the context.

Function overloading is usually associated with statically typed programming languages that enforce type-checking in function calls. An overloaded function is just a set of different functions that have the same name. For a particular function call, the compiler determines which implementation of the overloaded function to use, and resolves this at compile time.

Function Overriding:

Function or method overriding is one of the features of Object-oriented programming languages that allow a subclass or a child class(inherited class) to provide a new implementation to a method or function that already exists in its superclass or parent class. It allows for a specific type of polymorphism (subtyping).

The implementation in the subclass will override (replace) the implementation of its superclass by providing a function that has the same name, parameters, and even the same return type as that of the function in the superclass. The version or implementation of the function to be executed is determined by the object that invokes it. If an object of the parent class invokes the function, then the parent class version of the function will be executed, but if a child class object invokes the function then the child class version will be executed.

Difference between Function Overloading and Function Overriding:

Function Overloading

Function Overriding

In function overloading, two or more functions can own the same name, but the parameters will be different.

Function overriding permits us to redefine a method with the same name and parameters.

There is no requirement for the inheritance concept here.

In function overriding, we need an inheritance concept.

In the case of function overloading, the signatures should be different.

In the case of function overriding, the signatures should be the same.

We can use it as an example of compile time polymorphism.

We can use it as an example of run time polymorphism.

It happens during compile-time.

It occurs during the run-time.

A function has the ability to load multiple times.

A function can be overridden only a single time.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads