I am confused about a very basic thing.
Why must a constructor in an abstract class be public?
After all, it can only ever be called from the constructors
of the concrete subclasses, because of which I would
normally expect it to be protected.
-- Sebastian