Explain the concept of polymorphism in Java.
Polymorphism allows objects of different classes to be treated as objects of a common superclass. It's achieved through method overriding and method overloading. This promotes flexibility and allows different implementations to be used interchangeably.