Java uses polymorphism heavily, its collection API is based on it. Probably the best examples of polymorphism in Java are the following classes:
java.util.List
java.util.Map
java.util.Set
We know that depending on our use case we should use a particular implementation of these data structures.
If we prefer to use an ordered Set, we might use a TreeSet.
If we need a Map in a concurrent environment, we will use a java.util.concurrent.ConcurrentHashMap
.
The beautiful thing is that you can write your code using the java.util.Map
and java.util.Set
interfaces and if you need to change to another type of Set or Map, because the conditions have changed or someone has created a better version of the collection for you, you don't need to change any code!
Lets look at a very simple example of polymorphism in Java.
Imagine that you have a Shapes hierarchy; it might look similar to the following code:
package shapes; public interface Shape { public double getArea(); } public class...