Abstract classes may define constructors that run via the subclass`s super() call (implicit here). They just cannot be invoked directly with `new`. So the base constructor initializes `tag` before the concrete subclass method uses it. Abstractness blocks direct instantiation, not constructor logic for subclasses.