Außerdem benötigt man private Konstruktoren für Singleton-Klassen, auf dessen Exemplar über statische Methoden zugegriffen werden kann. Beim ersten Zugriff muss aber auch das Singleton erstmal erzeugt werden, was eben über den privaten Konstruktor geschieht. Default-Konstruktoren, die nur im Paket sichtbar sind, benötigt man unter anderem auch, wenn bestimmte Klassen nur in Abhängigkeit von anderen erzeugt werden können. Das klassische Beispiel ist eine DOM-Implementierung, bei der Elemente nicht ohne ein Dokument leben sollen.
Gemäß der Sprachspezifikation wird der Standard-Konstruktor nur erzeugt, wenn die Klasse keinen anderen Konstruktor hat. Wenn in der Basisklasse also bereits ein andere Konstruktor definiert ist, hat die Basisklasse keinen Standard-Konstruktor und der Aufruf des parameterlosen Basis-Konstruktors in einer abgeleiteten Klasse ist nicht gültig. Wenn die Lösung behauptet, der Aufruf wäre ungültig, weil der Standard-Konstruktor in diesem Fall privat ist, dann ist die Lösung falsch. Der Standard-Konstruktor existiert gar nicht – auch nicht mit privater Sichtbarkeit –, wenn in der Klasse bereits ein beliebiger anderer Konstruktor definiert ist.
Der Standard-Konstruktor hat übrigens auch keine "default"-Sichtbarkeit, sondern übernimmt die Sichtbarkeit seiner Klasse. In einer privaten inneren Klasse wäre auch der Standardkonstruktor privat.