Python Overloading and Overriding
By: Prof.Hitesh Prajapati
Overloading
Method overloading allows a class to have multiple methods with the same
name but different signatures (different numbers or types of parameters).
However, Python does not support method overloading in the traditional
sense, unlike languages like Java or C++.
Method overloading allows you to define multiple methods with the same
name but different parameter lists within a single class. The methods can
vary in the number of parameters or their data types.
public class Calculator {
public static void main(String[] args) {
Calculator calc = new Calculator();
public int add(int a, int b) {
return a + b; System.out.println("Add two integers: " + calc.add(5, 10));
} System.out.println("Add three integers: " + calc.add(1, 2, 3));
System.out.println("Add two doubles: " + calc.add(3.5, 2.2));
System.out.println("Add int and double: " + calc.add(5, 2.5));
public int add(int a, int b, int c) {
}
return a + b + c; }
}
public double add(double a, double b) {
return a + b;
}
public double add(int a, double b) { # This is example of
return a + b;
} overloading in java
# This is example of overloading in python
class Calculator:
def add(self, a=0, b=0, c=0):
return a + b + c
calc = Calculator()
print("Add two numbers:", calc.add(5, 10)) # Output: 15
print("Add three numbers:", calc.add(1, 2, 3)) # Output: 6
print("Add one number:", calc.add(7)) # Output: 7
Overriding
Method overriding occurs when a subclass defines a method with the same
name and signature as a method in its superclass, replacing the superclass's
implementation when called on a subclass instance.
Python fully supports method overriding through inheritance. You can
override a method by defining a method in the subclass with the same
name and parameters as in the superclass. You can also use the super()
function within the overridden method to call the parent class's version.
Note: Method overriding is also important in multiple and multilevel
inheritance, where the Method Resolution Order (MRO) determines which
overridden method is executed.
# This is example of overriding in python
class Animal:
def speak(self):
print("Animal makes a sound")
class Dog(Animal):
def speak(self):
print("Dog barks")
a = Animal()
a.speak() # Output: Animal makes a sound
d = Dog()
d.speak() # Output: Dog barks