See Java Language Specification:
A protected member or constructor of an object may be accessed from outside the package in which it is declared only by code that is responsible for the implementation of that object.
Your class A2 is not responsible for the implementation of A in the new A() call.
Meaning, it is not responsible for the implementation of an instance of A, but it is responsible for the implementation of an instance of A2.