What Is Polymorphism?

This is the Make Me a Programmer glossary entry for polymorphism.

What is Polymorphism?  A Quick Definition

Polymorphism in programming is the ability of objects of different types to be treated as objects of a common parent type. It allows for the interchangeability of objects, enabling them to respond differently to the same method call based on their specific implementations. Polymorphism promotes code reusability, flexibility, and modularity in object-oriented programming.

If that all sounds a little overwhelming to you, fear not.  This is why we have a few levels of definition in these glossary entries.

Polymorphism, Explained Like You’re Five

Imagine you have a box of different toys, like cars, dolls, and balls. Each toy looks different and does different things, but they all belong to the toy family.

Now, let’s say you have a special magic wand. When you wave the wand at a toy, it starts doing something specific that only it can do, like the car starts moving or the doll starts dancing. That’s like polymorphism in programming.

It’s when you have different objects that can do their own special things when you ask them, even though they are part of the same group.

Polymorphism, Explained for Non-Techies

Imagine you have a group of animals: a dog, a cat, and a bird. They all have their unique characteristics and behaviors.

Now, let’s say you have a command called “makeSound” and you want to use it on each of these animals. The cool thing about polymorphism is that you can treat each animal the same way, even though they make different sounds.

When you call the “makeSound” command on the dog, it barks; when you call it on the cat, it meows, and when you call it on the bird, it chirps.

Polymorphism allows you to work with different types of objects in a consistent way, even though they have their own individual behaviors. It makes programming more flexible and adaptable, just like how you can interact with various animals using the same command but get different responses.

Polymorphism, Explained for Beginner Techies

Polymorphism in programming is a concept that allows you to write code that can work with different types of objects in a flexible and interchangeable manner.

It involves creating a common interface or base class that defines a set of methods. Then, multiple derived classes can be created that inherit from the base class and provide their own implementations of those methods.

The key idea is that you can treat objects of the derived classes as objects of the base class, which means you can use them interchangeably. Even though the derived classes have their own specific behaviors, they can still respond to the same method calls as the base class.

For example, let’s say we have a base class called “Shape” with a method called “calculateArea()”. We can create derived classes like “Circle” and “Rectangle” that inherit from the “Shape” class. Each derived class would provide its own implementation of the “calculateArea()” method, specific to its shape.

Now, using polymorphism, we can write code that operates on a collection of different shapes, without worrying about their specific types. We can call the “calculateArea()” method on each shape object, and the correct implementation will be automatically executed based on the actual type of the object.

Polymorphism helps make our code more modular, extensible, and reusable. It allows us to write code that can work with a variety of objects, providing a consistent interface while accommodating their individual behaviors.

Further Reading

Polymorphism is a core concept in object oriented languages, so you’ll probably want to zoom out a little if you want to bone up on this idea.