Method Overloading vs. Method Overriding in Python

 

Method Overloading:

Two or more methods have the same name but different numbers of parameters different types of parameters, or both. These methods are called overloaded methods and this is called method overloading.

Definition: Method overloading refers to defining multiple methods in a class with the same name but with different parameters.

Purpose: It allows a class to have multiple methods with the same name, but each method can accept different types and numbers of parameters.

# First product method.
# Takes two argument and print their
# product


def product(a, b):
  p = a * b
  print(p)

# Second product method
# Takes three argument and print their
# product


def product(a, b, c):
  p = a * b*c
  print(p)

# Uncommenting the below line shows an error
# product(4, 5)


# This line will call the second product method
product(4, 5, 5)

 

 

Method Overriding:

Definition: Method overriding occurs when a subclass provides a specific implementation of a method that is already provided by its superclass.

Working Principle: In any OOPS oriented language, if a class takes any customized implementation of a method of the properties from its superclass or parent class then it creates a situation called method overriding.

# Python program to demonstrate 
# method overriding 


# Defining parent class 
class Parent(): 
  
  # Constructor 
  def __init__(self): 
    self.value = "Inside Parent"
    
  # Parent's show method 
  def show(self): 
    print(self.value) 
    
# Defining child class 
class Child(Parent): 
  
  # Constructor 
  def __init__(self): 
    self.value = "Inside Child"
    
  # Child's show method 
  def show(self): 
    print(self.value) 
    
    
# Driver's code 
obj1 = Parent() 
obj2 = Child() 

obj1.show() 
obj2.show()

 

 

Key Differences:

Purpose:

    • Method overloading is used to define multiple methods with the same name but different parameters in a single class.
    • Method overriding is used to provide a specialized implementation of a method in a subclass that is already defined in its superclass.

Implementation:

    • Method overloading is achieved within the same class by defining multiple methods with the same name but different parameters.
    • Method overriding occurs in a subclass by providing a specific implementation of a method that is already defined in its superclass.

Understanding the difference between method overloading and method overriding is crucial for effectively designing and implementing object-oriented Python programs, enabling code reuse, and achieving polymorphism where necessary.

 

Leave a Reply

Your email address will not be published. Required fields are marked *