How to implement polymorphism in Python?
Table of Contants
Introduction
Polymorphism is a core concept of object-oriented programming (OOP) that allows objects of different types to be processed through the same interface. In Python, polymorphism refers to the ability to define a method or function that works with objects of various classes, enabling flexibility in code structure. Polymorphism can be achieved using method overriding and function polymorphism in Python.
Types of Polymorphism in Python
1. Method Overriding
Method overriding allows a subclass to provide a specific implementation of a method that is already defined in its superclass. This ensures that the method behaves differently for different object types, even though the method name remains the same.
Example of Method Overriding:
Output:
In this example, the speak()
method is overridden in both the Dog
and Cat
classes to provide specific implementations.
2. Function Polymorphism
Function polymorphism allows a function to handle different object types and still execute properly. It means that the same function can operate on objects of different types, provided they share common behavior or methods.
Example of Function Polymorphism:
Here, the calculate_area()
function can handle both Rectangle
and Circle
objects because they each implement their own area()
method.
Practical Examples of Polymorphism
Example 1: Polymorphism with Common Interface
In this example, the start_flying()
function works for any object that implements a fly()
method, demonstrating polymorphism.
Example 2: Polymorphism with Built-in Functions
Python’s built-in functions also support polymorphism. For example, the len()
function can work with different types of data, like strings and lists.
Here, the len()
function works on both a string and a list, showing Python’s built-in support for polymorphism.
Conclusion
Polymorphism in Python allows methods or functions to operate on objects of various types through a single interface, promoting flexibility and reusability in code. It can be implemented using method overriding, function polymorphism, or by using Python's built-in support for polymorphism. Understanding and implementing polymorphism in your Python programs will enhance code structure and maintainability, especially when dealing with object-oriented principles.