You dont need to have private constructor for singelton. you can have it as protected. refer gof book. Making constrcutor protected you can subclass.
In that case don't you think if the dependent class is in same package as singleton class then there will be no Singletoness functionality.
The dependent class(Non subclass of singleton class) can create the multiple objects of singleton class using new operator.
as far as interview question is concerned...Inner class can only use the private constructor so its not necessary to use final keyword for singleton class..