According to the legend Venkat Subramaniam, polymorphism is the most important concept in object-oriented programming. Polymorphism–or the ability of an object to execute specialized actions based on its type–is what makes Java code flexible. Design patterns like Command, Observer, Decorator, Strategy, and many others created by the Gang Of Four, all use some form of polymorphism. Mastering this concept greatly improves your ability to think through solutions to programming challenges.

