Polymorphism lets you treat different classes uniformly if they share methods.
class Circle { area() { /*...*/ } }
class Square { area() { /*...*/ } }
function totalArea(shapes) {
return shapes.reduce((sum, s) => sum + s.area(), 0);
}
// Works with any shape that has area()
totalArea([new Circle(5), new Square(4)]);