Does Python support polymorphism?

Object Oriented ProgrammingProgrammingPython

Yes,Python support polymorphism.

The word polymorphism means having many forms.

polymorphism is an important feature of class definition in Python that is utilised when you have commonly named methods across classes or sub classes.

Polymorphism can be carried out through inheritance, with sub classes making use of base class methods or overriding them.

There are two types of polymorphism

  • Overloading
  • Overriding

Overloading: Overloading occurs when two or more methods in one class have the same method name but different parameters.

Overriding: Overriding means having two methods with the same method name and parameters (i.e., method signature). One of the methods is in the parent class and the other is in the child class.


class Fish():
   def swim(self):
      print("The Fish is swimming.")

   def swim_backwards(self):
      print("The Fish can swim backwards, but can sink backwards.")

   def skeleton(self):
      print("The fish's skeleton is made of cartilage.")

class Clownfish():
   def swim(self):
      print("The clownfish is swimming.")

   def swim_backwards(self):
      print("The clownfish can swim backwards.")

   def skeleton(self):
      print("The clownfish's skeleton is made of bone.")

a = Fish()
b = Clownfish()

When we run the program with the python command, we will get an expected output −


The fish's skeleton is made of cartilage.
The clownfish's skeleton is made of bone.
Published on 25-Jun-2019 18:38:38