protected scope : Java Glossary


protected scope
If you have a variable or method in your class that you don’t want clients of your class directly accessing, declare it protected. Classes that extend your class will still be able to use it even if they are not part of the same package. The default package accessibility has slightly more restricted visibility. Consider the following code: A protected method is visible to inheriting classes, even not part of the same package. A package scope (default) method is not. That is the only difference between protected and package scope.

The theory is that someone extending your class with protected access knows more about what they are doing than someone who is merely using it with public access. They also need more access to your class’s inner workings. Other than that, protected behaves like default package access.

You can’t use a protected constructor in a class that extends the constructor’s class, other than via an implicit or explicit super() to invoke the protected constructor. In other words, you can’t say new X() in an extending class where X is the protected constructor. The following code should make it clearer:

Further, you cannot declare a top level class protected, just the individual methods in it.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number