Final Methods
A final method can't be overridden by subclasses. This is used to prevent unexpected behavior from a subclass altering a method that may be crucial to the function or consistency of the class.
Example:
public class MyClass { public void myMethod {...} public final void myFinalMethod {...} } public class AnotherClass extends MyClass { public void myMethod {...} // Ok public final void myFinalMethod {...} // forbidden }A common misconception is that declaring a class or method final improves efficiency by allowing the compiler to directly insert the method inline wherever it is called. In fact the compiler is unable to do this because the method is loaded at runtime and might not be the same version as the one that was just compiled. Only the runtime environment and JIT compiler have the information about exactly which classes have been loaded, and are able to make better decisions about when to inline, whether or not the method is final.
Read more about this topic: Final (Java)
Famous quotes containing the words final and/or methods:
“And then ... he flung open the door of my compartment, and ushered in Ma young and lovely lady! I muttered to myself with some bitterness. And this is, of course, the opening scene of Vol. I. She is the Heroine. And I am one of those subordinate characters that only turn up when needed for the development of her destiny, and whose final appearance is outside the church, waiting to greet the Happy Pair!”
—Lewis Carroll [Charles Lutwidge Dodgson] (18321898)
“The reading public is intellectually adolescent at best, and it is obvious that what is called significant literature will only be sold to this public by exactly the same methods as are used to sell it toothpaste, cathartics and automobiles.”
—Raymond Chandler (18881959)