protected

 

  You cannot put this visibility modifier on a class or interface.

 

  protected can appear on just on a method, a variable, a constructor, or a named inner class.

 

  It allows access by classes in the same package, and by any subclasses regardless of their package. 

 

  You cannot override a protected method with a methods having no modifiers. This assigns package/default access, which is is more restrictive than protected.  See overriding.