In JAVA, the final keyword can be used with all three of the options (Class, Method, Variable) except with an Interface. The final modifier is used to restrict user in certain ways. When final is used with a Variable its value cannot be changed any further, it acts as a constant. Making a Method final blocks the method from being overriden in a inherited Class. Whereas a final Class cannot be inherited further. Since the sole purpose of a Interface is to be a virtual template class designed to be inherited, it cannot be made final.