It's not clear from your question whether you want a single singleton, which is allowed to be of the base class or any subclass, or whether you want separate singletons of the base class and every subclass. I'm guessing it's the former.
If you make the base class constructor store "this" as the singleton instance, in a static field of the base class, you have some of what you may want. You can't easily do lazy instantiation of the singleton, within a getSingleton() method, which people commonly like to do.
To have any sort of hierarchy of singleton classes, they need "protected" constructors. In
Java, "protected" implies package access. This reduces the singleton-ness of the classes.
Singleton is, in many opinions, an over-used and mis-used pattern. One of the objections to it is that it doesn't play very nicely in complicated class hierarchies like you're describing. Are you sure you couldn't achieve what you want in a tidier way, without lots of singleton classes?
[ April 02, 2007: Message edited by: Peter Chase ]