Understanding OOP (Object-Oriented Programming) and Polymorphism
Object-Oriented Programming (OOP) is a programming paradigm that focuses on modelling software systems as collections of objects that have both data (attributes) and behaviour (methods).
Understanding OOP (Object-Oriented Programming) and Polymorphism
Object-Oriented Programming (OOP) is a programming paradigm that focuses on modelling software systems as collections of objects that have both data (attributes) and behaviour (methods). OOP is based on the idea of classes and objects.
An object is a real-world entity, such as a pen, chair, table, computer, watch, etc. Object-based Programming is a methodology using which we can design a program by using classes and objects. OOP design techniques simplify software development and its maintenance by providing the following concepts:
In this blog, let’s look at the concept of Polymorphism.

What is polymorphism?
Polymorphism is one of the key principles of object-oriented programming, which allows objects of different classes to be treated as if they are of the same type. This means that a single interface can be used to represent different objects, and the behaviour of the objects can be changed at runtime.
The word “polymorphism” also signifies different forms. It is a very important concept in programming, referring to using a single type entity (method, function, operator or object) to represent different types in different scenarios.
Some examples of polymorphism in Python are described below:
-
Polymorphism in addition to operator
In Python, the ‘+’ operator doesn’t just have a simple application. For integer data types, it is used for the addition of numbers, as shown below:

The output of the above program is 30
For string data types, the polymorphism method is used for the concatenation of strings, as shown below:

The output of the above program is “Skill-Lync”
As can be seen from the above two examples, the same “+” operator can be used differently for two different data types. This is the most simple occurrence of polymorphism in Python.
- Polymorphism with len() function
The example below applies the len () function to different data types. For different data types, the output is different.

The output for the above program is as follows:


-
Polymorphism with class methods
The below example shows how Python uses two different types of classes in the same way. We create a “for” loop that iterates through a tuple of objects. We then call the methods regardless of which class type each object is. We assume that these methods actually exist in each class.
Program:

Output:

-
Polymorphism with Inheritance (Method Overriding):
In Inheritance, property of the parent class is inherited in a child class. For example, in the Python program shown below three classes (Bird, sparrow and ostrich) are created. Bird is parent class and sparrow and ostrich are child classes. Child classes inherit all the properties of the parent class. Methods/functions written in a parent class also become a part of child classes or methods/functions written in a parent class belong to parent class. But the methods written in parent class can be modified in child class, if it does not fit the purpose. This process of re-implementing a method in the child class is known as method overriding.

Polymorphism can also be achieved using method overloading, a method with the same name but different input arguments. Method overloading is not possible in Python.
Polymorphism can be an incredibly useful technique for code management. Multiple developers can simultaneously work on code for any use case in the real world. It’s important to be clear about the structure of your code and make sure the hierarchy of functions used is clear.