Why can a class not be defined as protected?

M.J. picture M.J. · Oct 6, 2010 · Viewed 95.6k times · Source

Why can we not define a class as protected?

I know that we can't, but why? There should be some specific reason.

Answer

Nikita Rybak picture Nikita Rybak · Oct 6, 2010

Because it makes no sense.

Protected class member (method or variable) is just like package-private (default visibility), except that it also can be accessed from subclasses.
Since there's no such concept as 'subpackage' or 'package-inheritance' in Java, declaring class protected or package-private would be the same thing.

You can declare nested and inner classes as protected or private, though.