🎉 October Learning Month — learn a new software term every day!
An interactive flashcard trainer for software engineering terms.

Polymorphism

In plain terms

One interface or name behaving differently depending on the underlying type.

Going deeper

In object-oriented code, a single method call like draw() can do the right thing whether the object is a circle or a square, because each type supplies its own implementation. It lets you write general code that works across many specific types.

Under the hood

Includes subtype (overriding), parametric (generics), and ad-hoc (overloading) forms; dynamic dispatch resolves the right method at runtime via vtables in compiled languages.

Examples

A shape.draw() call on Circle vs. Square; generic List<T>; operator overloading.

Think of it like...

Like the word 'play': you play a guitar, a sport, or a movie, the same verb, but the actual action depends entirely on the object it's paired with.

Feedback & Bug Report