/**
 * Error común: un constructor que llama a un método del que una subclase puede
 * hacer override. Si lo hace, su versión corre antes de que el constructor de la
 * subclase haya inicializado sus campos.
 */
public class Tag {

    // javac avisa con [this-escape]; se suprime para poder mostrar el efecto.
    @SuppressWarnings("this-escape")
    public Tag() {
        IO.println("Tag(): " + describe());
    }

    public String describe() {
        return "etiqueta";
    }
}
