The rule that the default constructor of a class has the same access modifier as the class itself is simple and intuitive. Note, however, that this does not imply that the constructor is accessible whenever the class is accessible.
The automatically generated constructor of the inner class is protected, which means that only classes in packagea and subclasses of that inner class can access it. Although SubClass does inherit the class itself, it is neither in packagea nor is it a subclass of the inner class. That's why you can't access the constructor.