Consider this code from the official OpenJDK source of java.awt.font.TextLayout:
java.awt.font.TextLayout
public final class TextLayout { /* ... */ protected v
To be used only in its own package
protected - member - Accessible only within its package and its subclasses
if someone defines a method as final then it cannot be Cannot be overridden and dynamically looked up.
Reference here: http://www.javacamp.org/javaI/Modifier.html