Snigdha,
That's exactly what I mentioned above:
the bottom line is that at least one of them must be accessible for the subclass to invoke. If the constructor of class a is declared private, there is no constructor in class a for class b to access, thus the compilation error.
The following code is perfectly legal:
Note that although there is a private constructor (which is used by the protected ones), the code compiles because there are other accessible constructors (the 2nd and 3rd). That's what I meant actually. Sorry if that wasn't clear