Default and protected access modifier rules are somewhat strange I will try to clarify them.
Class:
We cannot declare a top level class as protected; we can only declare it as
Members:
Protected is same as default with one extra liberty. “Sub classes outside the package can inherit the protected members “.