Interfaces and Abstract Classes in Java
Every language has its own solution to dealing with different types. With Ruby, it’s inheritance. With Clojure, it’s protocols. Java also has its own version of template modeling pattern, which is a way to remove code duplication while linking related objects…